다이나믹 프로그래밍 실전문제 1로 만들기


다이나믹 프로그래밍 실전문제 1로 만들기

#include<stdio.h> int less = 1000000; int make_one(int count, int x) { if (x == 1) { ///if (count < less) less = count; return(count); } if (count >= less) return; if (x % 5 == 0) make_one(count + 1, x / 5); if (x % 3 == 0) make_one(count + 1, x / 3); if (x % 2 == 0) make_one(count + 1, x / 2); make_one(count + 1, x - 1); } int main() { int x; scanf("%d", &x); int count =make_one(0, x); printf("%d", count); } 일단 내가 첫번째로 구현한 다이나믹 프로그래밍이고 탑다운 방식을 사용했다. 메모이 제이션은 사용하지 않았다. 하지만 조건을 작은경우 바로 리턴을 하게 만들어...



원문링크 : 다이나믹 프로그래밍 실전문제 1로 만들기