보안을 그리다, 훈이

[Baekjoon/Python3] 1463번 1로 만들기 본문

Programming/Python & Data Structures

[Baekjoon/Python3] 1463번 1로 만들기

HooNeee 2020. 12. 3. 00:55

[Baekjoon/Python3] 1463번 1로 만들기

 

www.acmicpc.net/problem/1463

 

1463번: 1로 만들기

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

www.acmicpc.net

 

# 다이나믹 프로그래밍
n = int(input())
cnt = 0
list_res = [n]
def cal(a):
    list_in = []
    for i in a:
        list_in.append(i - 1)
        if i % 3 == 0:
            list_in.append(i // 3)
        if i % 2 == 0:
            list_in.append(i // 2)
    return list_in

while True:
    if n == 1:
        print(cnt)
        break
    list_res = cal(list_res)
    cnt += 1
    if min(list_res) == 1:
        print(cnt)
        break
Comments