알고리즘/백준

[백준] 1463번 1로 만들기 (파이썬)

알감자 2022. 1. 1. 23:34
 

1463번: 1로 만들기

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

www.acmicpc.net

 

코드

import sys

n = int(input())
li = [0]

for i in range(1, n+1):
    if i == 1:
        li.append(0)
    elif i == 2:
        li.append(1)
    elif i == 3:
        li.append(1)
    else:
        a, b, c = sys.maxsize, sys.maxsize, sys.maxsize
        if i % 3 == 0:
            x = i // 3
            a = li[x]
        if i % 2 == 0:
            y = i // 2
            b = li[y]
        z = i - 1
        c = li[z]
        li.append(min(a,b,c) + 1)


print(li[n])