본문 바로가기

ALGORITHM/Algorithm 문제풀이

[문제풀이] 백준 1463번 1로 만들기

 

1463번: 1로 만들기

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.

www.acmicpc.net

 

 

문제풀이


N = int(input())
dp_table = [0] * (N+1)
for i in range(2, N+1):
    dp_table[i] = dp_table[i-1] + 1
    if i % 3 == 0:
        dp_table[i] = min(dp_table[i], dp_table[i//3] + 1)
    if i % 2 == 0:
        dp_table[i] = min(dp_table[i], dp_table[i//2] + 1)
print(dp_table[N])