그리디 알고리즘: 탐욕 알고리즘이라고도 하던데 이해한 바로는 굳이 할 필요 없는 탐색 등은 과감히 버리는 고런... 느낌? 맞나? 7) 11047번: 동전 0 www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net #include using namespace std; int main() { int n, k, a[10], count = 0; cin >> n >> k; for (int i = 0; i < ..
한글 쓰는 거 렉 걸려서 이어서 쓰겠다. 3) 3052번: 나머지 www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net #include using namespace std; int main() { int a[10], count = 0; for (int i = 0; i > a[i]; a[i] = a[i] % 42; } for (int i = 0; i < 10; i++) { for (int j = i+1; j < 10; j++) { if (a[i] == a[j]) a[j] = -1; } } for (int..
! 첫 번째 DP경험 ! DP (dynamic programming): 최적성의 원리(최소 경비 알고리즘에서 선정된 최적 경로 상의 다음꺼~)를 기초로 푸는 방법. n이 무한일 때 재귀적 순차 반복 과정 -> 점화식 구하기. 순차적으로 된 의사 결정의 최적화 문제. 출처: terms.naver.com/entry.nhn?docId=821911&cid=42344&categoryId=42344, terms.naver.com/entry.nhn?docId=847845&cid=42346&categoryId=42346, terms.naver.com/entry.nhn?docId=831585&ref=y&cid=42344&categoryId=42344 6) 1003번: 피보나치 함수 www.acmicpc.net/probl..
! 첫 번째 백트래킹 경험 ! 4) 15649번: N과 M (1) www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net #include using namespace std; int n, m; int a[9]; bool b[9]; void seq(int c); int main() { cin >> n >> m; seq(0); } void seq(int c) { if (c == m) { for (int i = 0; i < m; i++) { cout m; seq(1, ..
3) 2750번: 수 정렬하기 www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #include using namespace std; void swap(int &a, int &b); void bubble(int a[], int size); int main() { int n; int a[1000]; cin >> n; for (int i = 0; i > a[i]; for (int size = n; size > 1; size--) bubble(..
백준 알고리즘에서 '단계별로 풀기'를 시작했다. (아래 두 문제는 브론즈 I의 난이도에 해당하는 문제) 1) 1110번: 더하기 사이클 www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net #include using namespace std; int main() { int count = 1, n, st; cin >> n; st = n; while (1) { n = (n % 10) * 10 + ((n / 10 + n % 10) % 10); if (st..