본문 바로가기

전체 글

(189)
[프로그래머스] (C++) N진수 게임 문제 https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 | 프로그래머스 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할 programmers.co.kr 힌트 10진수 -> N진수로 변환하는 법 예. 10진수 1..
[프로그래머스] (C++) 가장 큰 수 문제 링크 코딩테스트 연습 - 가장 큰 수 | 프로그래머스 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. programmers.co.kr 힌트 다른 자릿수 끼리 크기 비교는 어떻게 하면 좋을까? (예: 한자리 숫자에 10을 곱해서 두자리 숫자랑 비교 해볼까?) 소스코드 (첫번째 시도) // [프로그..
[프로그래머스] (C++) 피보나치 수 문제 링크 힌트 n이 100000 일 때 피보나치 수를 구해보니 overflow가 발생하였다 구하는 값은 나머지이다. overflow를 방지하려면 나머지 연산을 잘 이용해야 한다. 소스 코드 #include #include int solution (int n) { int last2, last1, num; last2 = 0; last1 = 1; for (int i = 2; i
[프로그래머스] (C++) 행렬의 곱셈 문제 링크 소스 코드 // [프로그래머스] 행렬의 곱셈 #include #include #include using namespace std; vector solution(vector arr1, vector arr2) { vector answer; int row_size = arr1.size(); int col_size = arr2[0].size(); vector element; for (int i = 0; i < row_size; i++) { for (int j = 0; j < col_size; j++) { int sum = 0; for (int k = 0; k < arr2.size(); k++) { sum += arr1[i][k] * arr2[k][j]; } element.push_back(sum); ..
[프로그래머스] (C++) 큰 수 만들기 문제 문제로 가시려면 이 링크를 클릭해주세요. 힌트 앞 뒤 자리 비교 해보라 소스 코드 // [프로그래머스] 큰 수 만들기 #include #include #include using namespace std; string solution(string number, int k) { int eraseNum = 0; for (int i = 0; i < k; i++) { for (int j = 0; j < number.length() - 1; j++) { if (number[j] < number[j+1]) { number.erase(j,1); eraseNum++; break; } } } for (int i = 0; i < k - eraseNum; i++) { number.pop_back(); } return n..
[프로그래머스] (C++) 카펫 문제 문제는 이 곳에 가면 보실 수 있습니다. 힌트 테두리는 내부 블록에 의해 결정된다. 소스 코드 // [프로그래머스] // 카펫 #include #include #include using namespace std; vector solution(int brown, int red) { vector answer; int length; int width; int numBrown; int numCorner = 4; for (int i = 1; i
(C언어) epoll 정의 epoll 리눅스에서 select 대신 사용 가능한 I/O subscription 모델 FD를 등록하여 해당 FD를 계속 확인하거나 일정 시간 확인하여 요청된 이벤트를 처리하는 메케니즘 int epoll_create(int size); fd들의 입출력 이벤트 저장을 위한 공간 할당 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event) op 값으로 EPOLL_CTL_ADD, EPOLL_CTL_MOD, EPOLL_CTL_DEL 이 들어 올 수 있음 EPOLL_CTL_ADD: epoll에 fd를 등록 (fd로 처리 할 이벤트 종류 등록) [종류: EPOLLIN, EPOLLOUT, EPOLLPRI 등] int epoll_wait(int epfd,..
[프로그래머스] (C++) 점프와 순간이동 문제 문제는 이 곳에 가시면 있습니다. 힌트 일부의 최적의 해를 사용해 전체의 최적의 해를 구한다. 소스 코드 (1차 시도) //[프로그래머스] //점프와 순간 이동 #include #include #include using namespace std; vector gMin; int getMin(int n) { if (gMin[n] != 0) return gMin[n]; if (n % 2 == 0) { if (getMin(n/2) < (getMin(n-1) + 1)) { gMin[n] = getMin(n/2); } else { gMin[n] = getMin(n-1) + 1; } } else { gMin[n] = getMin(n-1) + 1; } return gMin[n]; } int solution(int..