Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
                            Tags
                            
                        
                          
                          - ES
 - Java
 - Elasticsearch
 - 애자일기법
 - 자바
 - 개발
 - 코딩
 - 코드
 - 애자일프로그래밍
 - kotlin
 - 스프링
 - 코딩테스트
 - 알고리즘
 - database
 - cleancode
 - API
 - 데이터베이스
 - 개발자
 - JPA
 - 그리디
 - 백준
 - Spring
 - framework
 - 읽기쉬운코드
 - spring boot
 - 클린코드
 - 엘라스틱서치
 - 프레임워크
 - 그리디알고리즘
 - Baekjoon
 
                            Archives
                            
                        
                          
                          - Today
 
- Total
 
튼튼발자 개발 성장기🏋️
[5585번] 거스름돈 본문
반응형
    
    
    
  문제 기출 : [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 |