My code
n,k = map(int,input().split())
count = 0
while n!=1:
if n%k==0:
n = n/k
count += 1
else:
n -= 1
count += 1
print(count)
Answer 1
n,k = map(int,input().split())
result = 0
while n >= k:
while n % k != 0:
n -= 1
result += 1
n //= k
result += 1
while n > 1:
n -= 1
result += 1
print(result)
Answer 2
n,k = map(int,input().split())
result = 0
while True:
target = (n // k) * k
result += (n - target)
n = target
if n < k:
break
result += 1
n //= k
result += (n - 1)
print(result)
Code Review
-My code
1이 될 때까지는 만약 n 이 k 로 나누어 떨어지면 n 을 k 로 나눠주면 되고 그렇지 않으면 k 로 나누어 떨어질 때까지 1을 빼주면 됩니다. 따라서 if else 문을 이용하여 만약 n 이 k 로 나누어 떨어지면 n 을 k 로 나누어주도록 하였고, 그렇지 않다면 1을 빼주도록 해주었습니다. 그리고 연산을 실행할 때마다 count 를 증가시켜주어 연산 횟수를 세어주었습니다. 만약 n 이 1이 된다면 반복문을 빠져나와 count 를 출력하도록 해주었습니다.
'나동빈 with 파이썬 > 실전문제 풀이' 카테고리의 다른 글
[Ch.5 - DFS/BFS] 음료수 얼려 먹기 (0) | 2022.02.10 |
---|---|
[Ch.4 - 구현] 게임 개발 (0) | 2022.02.09 |
[Ch.4 - 구현] 왕실의 나이트 (0) | 2022.02.05 |
[Ch.3 - 그리디] 숫자 카드 게임 (0) | 2022.01.28 |
[Ch.3 - 그리디] 큰 수의 법칙 (0) | 2022.01.28 |
댓글