알고리즘 풀이/백준

1463번 - 1로 만들기

claire 2022. 3. 12. 14:55
#include<iostream>
#include<algorithm>
using namespace std;

int d[1000001];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int x;
	cin >> x;
	d[1] = 0;
	for (int i = 2; i <= x; i++) {
		d[i] = d[i - 1] + 1;
		if (i % 2 == 0)d[i]=min(d[i], d[i / 2] + 1);
		if (i % 3 == 0)d[i] = min(d[i], d[i / 3] + 1);
	}
	cout << d[x];
}