1이 될 때까지

비얌·2022년 2월 17일
0

알고리즘

목록 보기
3/17
post-thumbnail

1. 문제

2. 풀이

k로 많이 나눌수록 수행하는 횟수는 적어진다. 따라서 2번 과정을 최대한 많이 하는 방법을 찾아야 한다.

# 파이썬 코드
n, k = map(int, input().split(" "))

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

그래서 while문으로 n이 1이 될 때까지 반복했고, n이 k로 나누어 떨어지면 나누고 cnt를 1 증가시켰다. 계속 나누어떨어지면 계속 나누게 했고, 만약 나누어떨어지지 않으면 1씩 감소시키다가 (cnt는 1씩 증가) 다시 k로 나누는 등 n이 1이 될 때까지 반복했다.

profile
🐹강화하고 싶은 기억을 기록하고 공유하자🐹

0개의 댓글