티스토리 뷰
1463번 1로 만들기
#include <iostream>
using namespace std;
int go(int n);
int d[1000001];
int main(void) {
int n;
cin >> n;
cout << go(n) << endl;
}
int go(int n) {
d[1] = 0;
int temp;
for (int i = 2; i <= n; i++) {
temp = d[i - 1] + 1;
if (i % 2 == 0 && temp > d[i / 2] + 1) {
temp = d[i / 2] + 1;
}
if (i % 3 == 0 && temp > d[i / 3] + 1) {
temp = d[i / 3] + 1;
}
d[i] = temp;
}
return d[n];
}
'백준 알고리즘 기초 강좌' 카테고리의 다른 글
3장 다이나믹 프로그래밍 - (2) 문제 풀이 3 [11727번 2XN 타일링2] (0) | 2017.08.12 |
---|---|
3장 다이나믹 프로그래밍 - (2) 문제 풀이 2 [11726번 2XN 타일링] (0) | 2017.08.12 |
3장 다이나믹 프로그래밍 - (1) 개념 (2) | 2017.08.02 |
2장 자료구조 - (4) 문자열 (0) | 2017.08.01 |
2장 자료구조 - (3) 덱 (0) | 2017.08.01 |
댓글