1. 문제 링크
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 |