카테고리 없음

[이코테 # 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)