시뻘건 개발 도전기

[5585번] 거스름돈 본문

Business logic/백준

[5585번] 거스름돈

시뻘건볼때기 2020. 4. 24. 21:50
반응형

문제 기출 : [https://www.acmicpc.net/problem/5585]

 

 

풀이 방법

[그리디알고리즘] 접근

우리가 일상생활에서 거스름돈 계산할 때 어떻게 계산하는가?

내가 줄 수 있는 지폐 혹은 동전 단위 중에 최고 금액(1원 10원  100원 1,000원 5,000원 10,000원 50,000원)부터 빼지 않는가?

다른 방법으로 계산한다면...할 말은 없지만 난 그렇게 계산한다.

 

그래서 평소처럼 문제에서 주어진 큰 동전 금액부터 빼 가면서 매수를 누적해 나갔다.

 

문제 풀이

public class Main {

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int answer = 0;

		try {
			int amount = Integer.parseInt(br.readLine());
			int remainAmount = 1000 - amount;

			while(remainAmount > 0) {
				if(remainAmount >= 500) {
					remainAmount -= 500;
					answer++;
				} else if(remainAmount < 500 && remainAmount >= 100) {
					remainAmount -= 100;
					answer++;
				} else if(remainAmount < 100 && remainAmount >= 50) {
					remainAmount -= 50;
					answer++;
				} else if(remainAmount < 50 && remainAmount >= 10) {
					remainAmount -= 10;
					answer++;
				} else if(remainAmount < 10 && remainAmount >= 5) {
					remainAmount -= 5;
					answer++;
				} else if(remainAmount < 5 && remainAmount >= 1) {
					remainAmount -= 1;
					answer++;
				} else {
					break;
				}
			}
			
			System.out.println(answer);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
반응형

'Business logic > 백준' 카테고리의 다른 글

[1911번] 흙길 보수하기  (0) 2020.05.03
[1758번] 알바생 강호  (0) 2020.04.26
[2828번] 사과 담기 게임  (0) 2020.04.23
[2875번] 대회 or 인턴  (0) 2020.04.23
[1343번] 폴리오미노  (0) 2020.04.22
Comments