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]);
}
'알고리즘 문제' 카테고리의 다른 글
[C/C++ 백준 9659번] 돌 게임 5 (Gold 5) (0) | 2020.08.28 |
---|---|
[C/C++ 백준 1764번] 듣보잡 (Silver 4) (0) | 2020.08.28 |
[C/C++ 백준 18870번] 좌표수 압축 (Silver 2) (0) | 2020.08.24 |
[C/C++ 백준 3020번] 개똥벌레 (Gold 5) (0) | 2020.08.23 |
[C/C++ 백준 1477번] 휴게소 세우기 (Gold 5) (0) | 2020.08.23 |