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 |
댓글