문제
C++
#include <bits/stdc++.h>
using namespace std;
int d[1000005];
int n;
int main(void) {
cin >> n;
d[1] = 0;
for(int i = 2; i <= n; i++){
d[i] = d[i-1]+1; // 1을 빼는 경우 :
if(i%2 == 0) d[i] = min(d[i],d[i/2]+1); // 2를 나누는 경우
if(i%3 == 0) d[i] = min(d[i],d[i/3]+1); // 3를 나누는 경우
}
cout << d[n];
}
'CPP 문제풀이 > 백준' 카테고리의 다른 글
백준 10773번 : 제로 (스택 STL) (0) | 2020.09.09 |
---|---|
백준 2579번 : 계단 오르기 (DP) (0) | 2020.09.03 |
백준 15683번 : 감시 (시뮬레이션) (0) | 2020.09.02 |
백준 9663번 : N-Queen (백트레킹) 💦 (0) | 2020.09.01 |
백준 15649번 : N과 M (1) (백트래킹)💦 (0) | 2020.09.01 |