본문 바로가기

대학교/프로그래밍 방법론

실습 2주차 [3] Coin Combination 문제 여러 종류의 동전이 있어서 그 동전들을 이용해서 특정한 금액을 만드려고 한다. 처음에 coin 종류의 개수를 입력 받고, 그 다음에는 각 동전마다의 액면가를 입력 받으며, 마지막으로 원하는 가격을 입력한다. 출력해야 할 값은 그 가격을 만들 수 있는 동전의 조합의 개수이다. 여기서 동전의 종류의 개수는 최대 10개까지만 입력한다고 가정하자. 입력 형식{동전 종류 수} 동전1 동전2 동전3 ... 동전n {원하는 가격} Hint : Recursion으로 구현하도록 한다. (Dynamic Programming으로 구현하면 좀 더 빠르게 할 수 있다.) 답안 #include using namespace std; int counting_coin(int[], int, int, int); int main(){..
실습 2주차 [2] Binary Search 문제10^6개 만큼의 서로 다른 unsigned integer가 정렬된 형태로 input에 들어오고, 다음으로는 10^4개 만큼의 서로 다른 unsigned integer가 들어온다.이 때 처음의 10^6개의 데이터는 배열에 들어가며, 그 다음 input인 10^4개의 데이터에 대해서 binary search를 이용해서 해당하는 인덱스를 반환해서 각각 출력하게 한다.만약 해당하는 값이 없는 경우에는 -1을 반환한다. 입력 형식숫자1 숫자2 ... 숫자1000000숫자1 숫자2 ... 숫자10000 출력 형식 : 인덱스 값을 한 줄에 하나씩 찍도록 한다. 즉 찾는 값이 총 10^4개이므로 출력은 10^4줄에 걸쳐서 나와야 한다. 답안 #include using namespace std; #define SI..
실습 2주차 [1] Greatest Common Divisor 문제 최대 공약수(Greatest Common Divisor)를 Recursive code로 구현하여 100개의 쌍에 대해서 최대 공약수를 출력하도록 한다. 입력의 경우 음이 아닌 정수가 입력되며 N과 0의 최대 공약수는 N을 출력하도록 한다. 입력 형식숫자1 숫자2 숫자3 숫자4 ... 숫자199 숫자200 출력 형식 : 입력된 두 쌍의 숫자에 대해서 각각 최대공약수를 구해서 각 줄마다 출력을 하도록 한다. 답안 #include using namespace std; int gcd(int, int); int main(){ int a, b; for (int i = 0; i > a >> b; cout b) ? b : a; if (t_min == 0) return t_max; ..
실습 1주차 [2] Insertion Sort 문제Insertion sort를 이용해서 주어진 정수들을 오름차순으로 정렬해서 출력한다. 단, 숫자의 개수가 10,000개를 넘지 않는다. 입력 형식(숫자 개수)숫자1 숫자2 ... 숫자N 출력 형식 : 주어진 N개의 숫자를 공백으로 구분하여 오름차순으로 출력 한다. Ex)입력54 7 3 10 1 출력1 3 4 7 10 답안 #include using namespace std; #define MAX_LEN 10000 void insertion_sort(int arr[], int size); int main(){ int N; cin >> N; int arr[MAX_LEN]; for (int i = 0; i > arr[i]; insertion_sort(arr, N); for (in..
실습 1주차 [1] Bubble Sort 문제Bubble sort를 이용해서 주어진 정수들을 오름차순으로 정렬해서 출력한다. 단, 숫자의 개수가 10,000개를 넘지 않는다. 입력 형식(숫자 개수)숫자1 숫자2 ... 숫자N 출력 형식 : 주어진 N개의 숫자를 공백으로 구분하여 오름차순으로 출력 한다. Ex)입력54 7 3 10 1 출력1 3 4 7 10 답안 #include using namespace std; #define MAX_LEN 10000 void bubble_sort(int arr[], int size); int main(){ int N; cin >> N; int arr[MAX_LEN]; for (int i = 0; i > arr[i]; bubble_sort(arr, N); for (int i = 0; ..