[python] 1로 만들기

전.py / / 2022. 7. 21. 14:58
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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기