본문 바로가기

알고리즘 문제풀이

(39)
[알고리즘] 백준 2231번 "분해합" (C/C++) - Don 임베디드 문제요약: 자연수 N에 대하여, 그 자연수 N의 분해합은 "N + (N을 이루는 각 자리수의 합)" 을 의미한다. 어떤 자연수 M의 분해합이 N 인 경우, "M은 N의 생성자" 라고 한다. 예를 들어, 245의 분해합은 256(=245 + 2 + 4 + 5) 이다. 따라서 245는 256의 생성자가 된다. 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개 일수도 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구하는 프로그램을 만들어보자. 제약: 시간제한 2초, 메모리 제한 192MB N은 자연수, 1
[알고리즘] 백준 1427번 "소트인사이드" (C/C++) - Don 임베디드 문제요약: 자연수 N이 주어지면, 그 수의 각 자리수를 내림차순으로 정렬하여 출력하는 프로그램을 작성하라 제약: 시간 제한 2초, 메모리 128MB 1
[알고리즘] 백준 10989번 "수 정렬하기 3" (C/C++) - Don 임베디드 문제요약: N개의 수 A[1] A[2] A[3] ... A[N] 이 주어진다. 이를 오름차순으로 정렬하여 출력하는 프로그램을 작성하라. (Counting Sort/ 계수 정렬을 사용하여 정렬하라.) 제약: 시간 제한 5초, 메모리 8MB 1
[알고리즘] 백준 2751번 "수 정렬하기 2" (C/C++) - Don 임베디드 문제요약: N개의 수 A[1], A[2], ... A[N] 가 주어졌을때, 주어진 모든 A[i]를 오름 차순으로 정렬하여 출력하라. 제약: 시간 제한 2초, 메모리 256MB 1 > nNumber; v.push_back(nNumber); } // sort the vector. default option: ascending. sort(v.begin(), v.end()); // declare an iterator vector ::iterator iter; for(iter = v.begin(); iter
[알고리즘] 백준 2798번 "블랙잭" (C/C++) - Don 임베디드 문제요약: 일반적인 블랙잭의 규칙은 선택한 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 오늘은 특별한 블랙잭을 해보려고 한다. 각 카드에는 양의 정수가 쓰여 있다. 딜러는 N장의 카드를 모두 숫자가 보이도록 놓는다. 딜러는 숫자 M을 크게 외친다. 플레이어는 제한된 시간 안에 N장의 카드 중 3 장의 카드를 골라야 한다. 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M에 최대한 가까워야 한다. 이 게임에서 항상 이길 수 있도록 프로그램을 만들어보자. 제약: 시간 제한 1초, 메모리 128MB, 3 M; // input N Cards. for (int i = 0; i > anCardNum[i]; } // Brute Force. Compare all possib..
[알고리즘] 백준 4948번 "베르트랑 공준" (C/C++) - Don 임베디드 문제요약: 베르트랑 공준은 임의의 자연수 N에 대하여, N보다 크면서 2N보다 작거나 같은 소수는 적어도 하나 존재한다는 내용이다. 예를 들어, 10보다 크고 20보다 작거나 같은 소수는 4개 존재한다. (11, 13, 17, 19) 그리고, 14보다 크고 28보다 작거나 같은 소수는 3개 존재한다. (17, 19, 23) 자연수 N이 주어졌을 때, N보다 크고 2N보다 작거나 같은 소수의 개수를 고하는 프로그램을 작성하라. 제약: 시간제한 1초, 메모리 256MB 1
[알고리즘] 백준 11729번 "하노이 탑 이동 순서" (C/C++) - Don 임베디드 문제요약: 세 개의 장대가 있고 첫 번째 장대에 서로 지름이 다른 N개의 원판이 쌓여있다. 각 원판은 지름이 큰 순서대로 쌓여있다. 현 순서와 동일하게 세 번째 장대로 옮기려고 하는데, 다음 규칙을 지켜야 한다. 1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 2. 쌓아 높은 원판은 항상 위의 것이 아래보다 작아야만 한다. 이 작업을 하면서 필요한 각 원판의 총 이동 횟수와, 원판이 이동한 경로를 출력하라. 제약: 시간 제한 1초, 메모리 256MB 첫 장대에 쌓인 원판 N개에 대하여 1
[알고리즘] 백준 2447번 "별 찍기 - 10" - Don 임베디드 문제요약: 재귀함수를 이용하여 특정 규칙의 별을 찍어보자. N이 3의 거듭제곱(3, 9, 27, 81, ...)이라고 할 때, 크기 N의 패턴은 길이 N짜리 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 길이 N짜리 정사각형이다. 제약: 시간 제한 1초, 메모리 제한 256MB N은 3의 거듭제곱이다. (N = 3^k) 이 때, 1