풀이방법
사용된 것:
그리디
2023.01.19
가장 큰 금액인 500엔 잔돈부터 가장 작은 금액인 1엔 잔돈까지 순서대로 각각 주어야 하는 개수를 구하면 된다.
줘야 하는 각 잔돈의 개수, 그 잔돈을 준 후 아직 더 주어야 하는 거스름돈의 양은 나누기 연산과 나머지 연산을 통해 구할 수 있다.
코드
Java(2023.01.19)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner (System.in);
//타로가 산 물건 가격 읽어오기
int n = sc.nextInt();
//줘야 하는 거스름돈의 값을 계산
int sub = 1000-n;
//정답을 저장할 변수
int answer = 0;
/*
* 가장 큰 액수의 잔돈부터 처리
*/
//500엔
answer += sub/500;
sub = sub%500;
//100엔
answer += sub/100;
sub = sub%100;
//50엔
answer += sub/50;
sub = sub%50;
//10엔
answer += sub/10;
sub = sub%10;
//5엔
answer += sub/5;
sub = sub%5;
//1엔
answer += sub;
//정답 출력
System.out.print(answer);
sc.close();
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
#10804 : 카드 역배치 (0) | 2023.03.12 |
---|---|
#2884 : 알람 시계 (0) | 2023.03.08 |
#1049 : 기타줄 (0) | 2023.01.18 |
#15649 : N과 M (1) (0) | 2023.01.18 |
#2501 : 약수 구하기 (0) | 2023.01.16 |