Dazzling 개발 노트

[백준] 14916 - 거스름돈 (Java) 본문

Algorithm/백준

[백준] 14916 - 거스름돈 (Java)

dj._.dazzling 2023. 10. 30. 11:53

[백준] 14916 - 거스름돈 (Java)

문제

https://www.acmicpc.net/problem/14916

풀이/후기

그리디 알고리즘을 사용하여 풀이한다.

2원과 5원을 이용해 가장 적은 동전으로 거슬러야 하기 때문에 5원으로 먼저 계산한다.

5로 나누어 떨어지지 않으면 N에서 2원을 빼주면서 cnt를 늘려주는 것이 포인트였던 것 같다.

코드

package Greedy;

import java.io.*;

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

        int N = Integer.parseInt(br.readLine());

        int cnt = 0;
        
        while (N > 0){
            //System.out.println(N);
            if (N % 5 == 0){
                cnt += N / 5;
                N = N % 5;
            } else {
                N = N - 2;
                cnt++;
            }
            
        }

        if (N < 0) {
			System.out.println(-1);
		} else {
			System.out.println(cnt);
		}
        
    }
}

Commit

https://github.com/allrightDJ0108/CodingTestStudy/commit/4b87c8045b0c66327c04494747afb28fa0b1fe19

참고