SWEA 1970 쉬운 거스름돈 D2 (자바 Java)

SWEA 1970 쉬운 거스름돈

문제 정보

  • 문제 출처 : SW Expert Academy
  • 문제 번호 : 1970
  • 문제 제목 : 쉬운 거스름돈
  • 문제 난이도 : D2
  • 풀이 언어 : Java

문제

우리나라 화폐 ‘원’은 금액이 높은 돈을 우선적으로 계산할 때 돈의 개수가 가장 최소가 된다.

S마켓에서 사용하는 돈의 종류는 다음과 같다.
50,000 원
10,000 원
5,000 원
1,000 원
500 원
100 원
50 원
10 원

S마켓에서 손님에게 거슬러 주어야 할 금액 N이 입력되면 돈의 최소 개수로 거슬러 주기 위하여 각 종류의 돈이 몇 개씩 필요한지 출력하는 문제

접근

반복문을 활용해 문제를 풀었다.

풀이

  • for 문을 사용하여 각 테스트 케이스를 처리한다.
  • N에 현재 테스트 케이스의 환산할 금액을 입력 받는다.
  • 화폐 단위 배열 units를 선언한다.
  • 현재 테스트 케이스의 번호를 출력한다.
  • 화폐 단위 배열 units를 순회하며 각 화폐 단위로 환산할 수 있는 개수를 계산하고 출력한다.
  • 각 단위로 환산한 금액은 해당 화폐 단위로 나눈 몫을 현재 금액(N)에서 빼서 갱신한다.

후기

쉽게 해결한 문제

코드

Java
import java.util.Scanner;
import java.io.FileInputStream;
 
class Solution
{
    public static void main(String args[]) throws Exception
    {
        Scanner sc = new Scanner(System.in);
        int T;
        T=sc.nextInt();
 
        for(int test_case = 1; test_case <= T; test_case++)
        {
            int N = sc.nextInt();
            int[] units = {50000, 10000, 5000, 1000, 500, 100, 50, 10};
 
            System.out.println("#" + test_case);
 
            for (int unit : units) {
                int count = N / unit;
                System.out.print(count + " ");
                N -= count * unit;
            }
            System.out.println();
        }
    }
}
Java

Leave a Comment