반응형
반응형
https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 난이도: solved.ac 실버 5 요즘 dp 문제를 푸는 중이라 이 문제를 dp방식으로 풀어보았다 근데 이 문제 리뷰를 보고 옛날에 풀었던 2839번과 똑같은 문제라는 걸 알게 되었다 https://blog.naver.com/jahysu7300/222511147813 [C언어] 백준 2839번 : 설탕 배달 이 문제는 솔직히 나한테 너무 어려웠다... 오늘 생각날 때마다 계속 고민을 해봐도 어떻게 해야 풀 수 있... blog.naver.com 그래서 이전에 풀었던 방식(Greedy Algorithm)으로도 풀어보..
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 난이도: solved.ac 실버 3 매우 유명한 dp문제다 arr[N]을 N→1로 만드는데 필요한 연산의 최소 횟수라고 해보자 arr[N]은 다음 3개의 값 중 최소값이 된다 arr[N / 3] + 1 (N이 3으로 나누어 떨어지는 경우) arr[N / 2] + 1 (N이 2으로 나누어 떨어지는 경우) arr[N - 1] + 1 이를 코드로 나타내면 다음과 같다 #define _CRT_SECURE_NO_WARNINGS #include #define min(A,B) A
https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 난이도: solved.ac 실버 3 그림이 있어 규칙찾기 매우 쉬운 dp문제다 N번째 삼각형 변의 길이를 tri[N]이라고 해보자 그림을 자세히보면 tri[6]부터는 바로 앞 삼각형인 tri[N-1]의 변과 tri[N-5] 변이 한 변이 되는 걸 알 수 있다 tri[N] = tri[N-5] + tri[N-1] (N ≥ 6) tri[1]부터 tri[5]까지는 각 값을 지정해주고 (tri[0]은 그냥 0으..
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 난이도: solved.ac 실버 3 피보나치 수열은 dp(다이나믹 프로그래밍, 동적 계획법)를 이용하면 매우 빠르게 n번째 수열을 구할 수 있다 이번 문제는 n번째 수열을 찾는 게 아니라 f(0)과 f(1)을 몇 번 호출하는지 구하는 문제이다 이것도 dp를 이용해 금방 구할 수 있다 일단 n = 0일 때는 f(0)을 1번 출력하고 f(1)을 0번 출력한다 이를 2차원 배열로 나타내보자 f[n][0]은 n번째 피보나치 수열의 f(0)을 호출하는 횟수, f[n][1]은 n번째 피보나치 수열의 f(..
https://www.acmicpc.net/problem/24416 24416번: 알고리즘 수업 - 피보나치 수 1 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍 www.acmicpc.net 난이도: solved.ac 브론즈 1 #define _CRT_SECURE_NO_WARNINGS #include int f[41] = { 0,1,1 }; int cnt1 = 0; int cnt2 = 0; int fib(int n) { if (n == 1 || n == 2) { cnt1++; return 1; } else return (fib(n - 1) + fib(n - 2)); } ..