티스토리 뷰

Python/이코테

8-2. 1로 만들기

JH_ 2022. 7. 10. 21:37
x = int(input())

d = [0]*30001

for i in range(2, x+1):  # 1로 만드니까 2부터시작
    d[i] = d[i-1]+1  # 가정 (최소연산횟수)
    if i % 2 == 0:
        d[i] = min(d[i], d[i//2]+1)  # 2로 나누어 떨어졌을때나, 1을 뺀값중에 더 작은 값을 넣음
    if i % 3 == 0:
        d[i] = min(d[i], d[i//3]+1)
    if i % 5 == 0:
        d[i] = min(d[i], d[i//5]+1)
print(d[x])

 

'Python > 이코테' 카테고리의 다른 글

8-3. 개미 전사  (0) 2022.07.15
8-1. 다이나믹 프로그래밍  (0) 2022.07.13
7-1. 범위를 반 씩 줄여가는 탐색  (0) 2022.07.10
7-3. 떡볶이 떡 만들기  (0) 2022.07.08
7-2. 부품찾기  (0) 2022.07.07
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday