카테고리 없음
[이코테 # Greedy4] 1이 될 때까지
코딩상륙작전
2023. 6. 5. 22:21
* 1이 될 때까지
입력된 수 N이 1일 될 때까지 두 가지 연산 중 하나를 선택하는 과정을 반복한다.
1. N에서 1을 뺀다.
2. N을 K로 나눈다.(단, N이 K로 나누어떨어질 때만 선택할 수 있다.)
1번 혹은 2번 과정을 수행하는 최소 횟수를 구하는 프로그램을 작성하시오.
* 순환으로 작성해봄.
def nkproblem(n, k):
global count
if n % k == 0 and n != 1:
count += 1
nkproblem(n // k, k)
elif n % k != 0 and n != 1:
count += 1
nkproblem(n - 1, k)
else:
print(count)
n, k = map(int, input().split())
count = 0
nkproblem(n, k)
n, k = map(int, input().split())
count = 0
while n != 1:
if n % k == 0:
n = n // k
else:
n = n - 1
count += 1
print(count)