본문 바로가기

ALGORITHM

백준 5585 거스름돈 (Java)

1. 문제 링크

 

5585번: 거스름돈

타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사

www.acmicpc.net

 

2. 문제 및 입출력예제

 

3. 문제 풀이

그리디(탐욕) 알고리즘의 대표적인 문제이다.

1000엔 중 물건 가격을 뺀 잔돈을 구한 후 거스름돈의 개수가 가장 적게 나와야 한다.

반복문을 돌릴 때, 배열의 값보다 큰거나 같은 경우에는 빼고

아닐 경우에는 배열의 다음 값으로 넘어가도록 했다.

 

4. 코드

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int count = 0;
		int money = Integer.parseInt(br.readLine());
		int[] num = {500, 100, 50, 10, 5, 1};
		money = 1000 - money;
		for(int i=0;i<6;) {
			if(money >= num[i]) {
				money -= num[i];
				count++;
			}
			else {
				i++;
			}
			if(money == 0) {
				break;
			}
		}
		sb.append(count);
		System.out.println(sb);
	}
}

 

'ALGORITHM' 카테고리의 다른 글

백준 1547 공 (Java)  (0) 2023.01.25
백준 1931 회의실 배정 (Java)  (0) 2023.01.24
백준 1085 직사각형에서 탈출 (Java)  (0) 2023.01.22
백준 1436 영화감독 숌 (Java)  (0) 2023.01.21
백준 1009 분산처리 (Java)  (0) 2023.01.20