일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 책을알려주는남자
- 투자
- 화장품
- C
- 돈
- 프로그래밍언어
- 알고리즘공부
- algorithmTest
- 알고리즘트레이닝
- 알고리즘 공부
- 독서
- 자바스크립트
- algorithmtraining
- 지혜를가진흑곰
- 채권
- algorithmStudy
- C++
- JavaScript
- 주식
- 책알남
- 서평
- 프로그래머스 알고리즘 공부
- 백준알고리즘
- 독후감
- 경제
- 성분
- 자바
- Java
- 재테크
- 다독
- Today
- Total
목록[Snow-ball]프로그래밍(컴퓨터) (334)
탁월함은 어떻게 나오는가?

문제 설명 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다. 큐는 먼저 집어넣은 원소가 먼저 나오는 구조입니다. 이 문제에서는 큐를 배열로 표현하며, 원소가 배열 앞쪽에 있을수록 먼저 집어넣은 원소임을 의미합니다. 즉, pop을 하면 배열의 첫 번째 원소가 추출되며, insert를 하면 배열의 끝에 원소가 추가됩니다. 예를 들어 큐 [1, 2, 3, 4]가 주어졌을 때, pop를 하면 맨 앞에 있는 원소 1이 추출되어 [2, 3, ..

구글 OTP 2FA인증에 대해서 구현해보고 싶어서 테스트를 진행해보았다. 개인적으로 나는 구글에서 열어주는 api를 사용하는 줄 알았는데, 전혀 아니였다. 이 글에는 TOTP에 관한 간단한 설명과 코드에 적용한 방법만 적을 예정이다. 좀 더 자세히 알고 싶다면 밑에 레퍼런스 참조하는것을 추천한다. 2FA 란? - 2FA는 Two-Factor Authentication 의 준말로, 유저의 보안을 강화하기 위해 1차 로그인 과정이외의 추가 인증 과정을 말한다. - 최근 많은 웹 사이트, 게임 등에서 활용되고 있는 OTP, 모바일을 통한 추가 인증 등이 이에 해당된다. - 인증은 아래의 3가지 유형으로 크게 분류할 수 있다. - 일반적으로 지식기반의 인증에 더불어 또 다른 인증 방식을 추가하여 구현이 된다. ..

문제 설명 철수와 영희는 선생님으로부터 숫자가 하나씩 적힌 카드들을 절반씩 나눠서 가진 후, 다음 두 조건 중 하나를 만족하는 가장 큰 양의 정수 a의 값을 구하려고 합니다. 1. 철수가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 영희가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a 2. 영희가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 철수가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a 에를 들어, 카드들에 10, 5, 20, 17이 적혀 있는 경우에 대해 생각해 봅시다. 만약, 철수가 [10, 17]이 적힌 카드를 갖고, 영희가 [5, 20]이 적힌 카드를 갖는다면 두 조건 중 하나를 만족하는 양의 정수 a는 존재하지 않습니다. 하지만, ..

문제 설명 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류의 최소일 때입니다. 경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine 이 매개변수로 주어집니다. 경화가 귤 k개를 고를 때 크기..

문제 설명 XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이는 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다. 예를 들어, 정현이가 원하는 제품이 바나나 3개, 사과 2개, 쌀 2개, 돼지고기 2개, 냄비 1개이며, XYZ 마트에서 15일간 회원을 대상으로 할인하는 제품이 날짜 순서대로 치킨, 사과, 사과, 바나나, 쌀, 사과, 돼지고기, 바나나, 돼지고기, 쌀, 냄비, 바나나, 사과, 바나나인 경우에 대해 알아봅시다. 첫째 날부터 열흘 간에는 냄비가 할인하지 않기 때문에 첫..

EC2안에 프로젝트와 데이터베이스를 함께 사용하기 위한 작업이다. 이 글은 프로젝트와 프로젝트 내에 도커 셋팅은 되어 있다는 가정하에 진행한다. 아직 안되어있다면 세팅하고 따라가는걸 추천한다. 첫째. 현재는 [ docker ps ] 명령어를 치면 아무것도 생성되어 있지 않다. 우선, 데이터베이스와 프로젝트가 서로 통신이 되기 위해서는 network가 필요하다. ec2를 만들고 나서 [ docker network ls ] 를 입력하면 아래와 같이 3가지의 네트워크가 기본적으로 생성되어 있다. 그리고나서 확인을 해본 후 내가 사용할 네트워크를 생성해보자. [ docker network create connet-net ] 을 입력하면 connet-net 이라는 이름의 네트워크가 생성된다. 그리고 나서 다시 [..

git action을 사용한 ci/cd 를 하기 위해서는 4가지 선제조건이 필요하다. 첫째. aws ec2에 docker 를 설치해놔야 한다. 둘째. git repository 에 프로젝트가 연결되어 있어야 한다. 셋째. ci/cd 프로젝트안에 Dockerfile 들 필요 설정이 되있어야 한다. 넷째. Git > Personal access tokens > Tokens(classic) 은 미리 발행해놔야 한다. 위의 4가지가 되있다는 전제조건을 가지고 ci/cd 작업을 시작해보겠다. 첫째. Github의 Repository 에서 Settings > Actions > Runners > New self-hosted runner 를 눌러준다. 둘째. Runner image가 존재하는데, 알아둬야할 점은 ima..

AWS EC2의 생성을 했다고 가정한 후를 작성하겠다. 참고로, 나의 경우는 Application and OS Images (Amazon Machine Image)의 경우에는 Ubuntu -> Ubuntu Server 20.04 (HVM)을 사용한다. AWS EC2를 생성했을 때 [ 키 페어(로그인) ] 을 만들었을 것이다. (1) .pem (2) .ppk 가 존재하는데 MAC terminal로 사용할 것이기 때문에 나는 .pem으로 만들었다. 그럼 터미널에 접속해서 아래와 같이 입력해보자. 예시이기 때문에 자신에게 맞는 방식으로 변경이 필요하다. 1 2 aws 키 페어 aws 퍼블릭 IPv4 주소 ssh -i test.pem ubuntu@3.35.247.212 cs 이후, 접속이 되면 좋지만 나는 대체..