본문 바로가기
Study

백준1463: 1로 만들기(Python)

by 고체물리학 2021. 12. 20.

 

ex) 10이라는 수는 10 -> 9 -> 3 ->1 (1을 빼고 3으로 두 번 나눈다) : 연산 횟수는 3

                        10 -> 5 -> 4 -> 2 -> 1  (2로 나누고 1을 빼고  2로 두 번 나눈다): 연산 횟수는 4

 

n = int(input())
d = [0]*(n+1)


for i in range(2,n+1):
    d[i] = d[i-1]+1
    if i %2 == 0: 
        d[i] = min(d[i//2]+1,d[i])
    if i%3 ==0:
        d[i] = min(d[i//3]+1,d[i])
print(d[n])

 

 

 

반응형

'Study' 카테고리의 다른 글

백준9095: 1, 2, 3 더하기(Python)  (0) 2021.12.30
Python 재귀함수(Recursion)  (0) 2021.12.27
백준1789: 수들의 합 (Python)  (0) 2021.12.12
백준11653: 소인수 분해 (Python)  (0) 2021.12.12
백준14501: 퇴사 (Python)  (0) 2021.12.02

댓글