VioletaBabel
1463번: 1로 만들기 본문
#include<cstdio>
#include<algorithm>
int main()
{
int n, o[1000001];
o[1] = 0;
scanf("%d", &n);
for (int i = 2; i <= n; ++i)
{
if (i % 3 == 0)
o[i] = std::min(o[i / 3] + 1, o[i - 1] + 1);
else if (i % 2 == 0)
o[i] = std::min(o[i / 2] + 1, o[i - 1] + 1);
else
o[i] = o[i - 1] + 1;
}
printf("%d", o[n]);
}
'백준 > 백준-C++' 카테고리의 다른 글
1012번: 유기농 배추 (0) | 2017.06.03 |
---|---|
1629번: 곱셈 (0) | 2017.06.03 |
11052번: 붕어빵 판매하기 (0) | 2017.06.01 |
1780번: 종이의 개수 (0) | 2017.06.01 |
2003번: 수들의 합 [재채점 틀림] (0) | 2017.05.29 |
Comments