문제

문제출처 : Baekjoon

img

풀이

import java.util.*;

public class Main {

    public int solution(int n) {
        int answer = 0;
        int count = 0;
        int change = 1000-n; //거스름돈
        int[] arr = {500,100,50,10,5,1};

        while(change != 0){
            for(int i = 0; i < arr.length; i++){
                if(change >= arr[i]){
                    count = change/arr[i];
                    change -= arr[i]*count;
                }
                answer += count;
                count = 0;
            }
        }

        return answer;
    }

    public static void main(String[] args) {
        Main function = new Main();

        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        System.out.println(function.solution(n));

    }
}

회고

  1. 에러가 나서 확인해보니 change>arr[i] 조건때문에 거스름돈이 500원 이하로 남았을때 동작하지 않았었다==;;;
  2. count=0 초기화 조건을 주는게 중요하다고 생각한다.