bronze 2. 거스름돈(5585)

|

bronze 2. 거스름돈(5585)

출처 : https://www.acmicpc.net/problem/5585

문제

잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔 1엔이 있을 때, 1000엔을 지불하고 받은 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성

입력: 타로가 지불해야할 돈 1개가 쓰여져 있음

출력: 잔돈에 포함된 매수

풀이

  • 아이디어: 가장 큰 화폐 단위부터 거슬러줌
import java.util.*;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int count = 0;	// 잔돈 개수
        int num = 1000 - sc.nextInt();	// 받아야할 거스름돈
        int[] coinTypes = {500, 100, 50, 10, 5};	// 거스름돈 동전 종류
        
        // 가장 큰 화폐 단위부터 거슬러줌
        for (int i=0; i<coinTypes.length; i++){
            int coin = coinTypes[i];
            count += num / coin;
            num %= coin;
        }
        
        // 남은 돈이 1엔 단위일 경우 따로 처리
        if (num != 0){
            count += num;
        }
    }
}