1이 될 때까지 (Java)

박지훈·2021년 2월 16일
0
post-custom-banner

문제

위 문제는 아래 링크의 책의 그리디 파트에 대한 문제입니다. 저작권 문제로 인해 문제를 올리지는 않겠습니다.ㅠㅠ
https://www.youtube.com/watch?v=eYtsGlYPilo



풀이

  1. N이 K로 나누어 떨어지면 나눈다. 이후 count를 +1 한다.

  2. N이 K로 나누어 떨어지지 않으면 N에서 1을 뺀다 (N - 1). 이후 count를 +1 한다.

  3. N이 1이 될 때까지 1, 2번 과정을 반복한다.



코드

import java.util.*;
import java.io.*;

public class Main {

    static int N, K;
    static int answer = 0;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        K = Integer.parseInt(st.nextToken());

        while (true) {
            if (N == 1) {
                break;
            } else if (N % K == 0) {
                N /= K;
                answer++;
            } else {
                N -= 1;
                answer++;
            }
        }

        System.out.println(answer);
    }
}
profile
Computer Science!!
post-custom-banner

0개의 댓글