728x90
1. X가 5로 나누어떨어지면 5로 나누기
2. X가 3으로 나누어떨어지면 3으로 나누기
3. X가 2로 나누어떨어지면 2로 나누기
4. X에서 1을 빼기
=> 연산을 사용하는 횟수의 최솟값
x = int(input())
d = [0] * 30001
for i in range(2, x+1):
d[i] = d[i-1] + 1
if i%2 == 0:
d[i] = min(d[i], d[i//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])
반응형
'전.py' 카테고리의 다른 글
[python] 바닥 공사 (0) | 2022.07.21 |
---|---|
[python] 개미 전사 (0) | 2022.07.21 |
[python] 떡볶이 떡 만들기 (0) | 2022.07.21 |
[python] 부품 찾기 (1) | 2022.07.14 |
[python] 이진 탐색 (0) | 2022.07.14 |