본문 바로가기
백준

[1463] 1로 만들기

by Jcoder 2018. 8. 3.


#include <iostream>
#define MAX 1000001
using namespace std;
int min(int a, int b);
int dp[MAX];
int main()
{
int testcase, i;
cin >> testcase;
dp[0] = dp[1] = 0;
for (i = 2; i <= testcase; i++)
{
dp[i] = dp[i - 1] + 1;
if (i % 2 == 0)
dp[i] = min(dp[i], dp[i / 2] + 1);
if (i % 3 == 0)
dp[i] = min(dp[i], dp[i / 3] + 1);
}
cout << dp[testcase] << endl;
return 0;
}
int min(int a, int b)
{
return (a < b) ? a : b;
}


'백준' 카테고리의 다른 글

[2490] 웇놀이  (0) 2018.08.09
[2293] 동전 1  (0) 2018.08.03
[2579] 계단 오르기  (0) 2018.08.03
[1932] 정수 삼각형  (0) 2018.08.03
[1149] RGB거리  (0) 2018.08.03