728x90
반응형

알고리즘/DP(다이나믹 프로그래밍) 4

[백준/DP/C++] 1003번 피보나치 함수

문제는 여기! 문제풀이 방법 arr 함수를 선언해주고 arr[N][0] 에는 fibonacci(N)을 구할때 출력되는 0의수 arr[N][1] 에는 fibonacci(N)을 구할때 출력되는 1의수로 정하고 문제를 풀었다 #include using namespace std; int T; int arr[41][2]; void callZero(){ arr[0][0] = 1; arr[0][1] = 0; arr[1][0] = 0; arr[1][1] = 1; for(int i=2; i> T; for(int i=0; i> N; cout

[백준/DP/C++] 1149번 RGB거리 *

문제는 여기! #include using namespace std; int N; int cost[3]; int house[1001][3]; void input() { cin >> N; for(int i=0; i> cost[0] >> cost[1] >> cost[2]; if(i==0){ house[0][0] = cost[0]; house[0][1] = cost[1]; house[0][2] = cost[2]; } else { house[i][0] = min(house[i-1][1], house[i-1][2]) + cost[0]; house[i][1] = min(house[i-1][0], house[i-1][2]) + cost[1]; house[i][2] = min(house[i-1][0], house[i-1..

[백준/DP/C++] 1463번 1로 만들기

문제는 여기! 문제 해결 방법 DP[n] : n을 만드는데 사용되는 연산의 최소 횟수 로 정하고 Dp{1] = 0,DP[2] = 1, DP[3] = 1, 나머지는 N으로 초기화를 했다. 그리고 n이 3으로 나누어 떨어지면 DP[n]과 DP[n/3]+1 의 최소값을 비교해서 DP[n]에 입력, n이 2로 나누어 떨어지면 DP[n]과 DP[n/2]+1 의 최소값을 비교해서 DP[n]에 입력, DP[n]과 DP[n-1]+1 의 최소값을 비교해서 DP[n]에 입력해서 문제를 해결했다. #include using namespace std; int N; int dp[1000001]; void solve(){ for(int i=4; i> N; fill(dp, dp+N+1, N); dp[1] = 0; dp[2] = 1..

728x90
반응형