1463_1로만들기(C++)

#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	int d[1000000];

	d[1] = 0;
	for (int i = 2; i <= n; 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[n];
}

다이나믹프로그래밍 설명 게시글->
https://velog.io/@kimeunseo58/%EB%8B%A4%EC%9D%B4%EB%82%98%EB%AF%B9%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

좋은 웹페이지 즐겨찾기