알고리즘

1이 될 때까지

HeyTeddy 2022. 1. 24. 13:52
반응형

주어진 n, k수에서

1. n에서 1을 뺀다.

2. n을 k로 나눈다.

두 과정 중 하나를 반복적으로 수행하려 한다. 2번째 과정은 n이 k로 나누어 떨어질 경우에만 가능하다.

최소 횟수값을 출력하기 위해서는 2번, 나눗셈을 많이 사용해야 한다. 

 

책에 나와있는 코드 대신, 스스로 코드를 짜본 결과 

import sys

n,k = map(int, sys.stdin.readline().split())
# 시행 횟수
cnt = 0 

while n != 1:
    if n%k == 0:
        n = n//k
    else:
        n = n-1
    cnt += 1
print(cnt)

n이 1이 아닐동안 반복문을 작성하였고, cnt = 0으로 두어 한 번 실행할 때마다 1씩 증가

반응형