ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [이코테 # 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)

     

    댓글

Designed by Tistory.