(cpp)Baekjoon 1463번 문제 ‘1로 만들기’ - 다이나믹프로그래밍
문제풀이
코드
#include <iostream>
#include <algorithm>
using namespace std;
int dp[1000001];
int n;
int main() {
cin >> n;
dp[1] = 0;
for (int i = 2; i <= n; i++) {
dp[i] = dp[i - 1] + 1;
if (i % 3 == 0) {
dp[i] = min(dp[i],dp[i / 3] + 1);
}
if (i % 2 == 0) {
dp[i] = min(dp[i], dp[i / 2] + 1);
}
}
cout << dp[n];
return 0;
}
- 지금까지 푼 문제 중에 젤 많이 틀림