알고리즘 문제
[C/C++ 백준 1463번] 1로 만들기 (Silver 3)
새파란 공대생
2020. 8. 25. 22:24
https://www.acmicpc.net/problem/1463
1463번: 1로 만들기
첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.
www.acmicpc.net
간단한 dp문제이다.
#include <cstdio>
#include <algorithm>
using namespace std;
int X[1000001];
int main(void){
int N;
scanf("%d", &N);
for(int i=1; i<=N; i++){
if(i==1)
X[i]=0;
else{
X[i]=X[i-1]+1;
if(i%3==0)
X[i]=min(X[i/3]+1, X[i]);
if(i%2==0)
X[i]=min(X[i/2]+1, X[i]);
}
}
printf("%d",X[N]);
}