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