https://www.acmicpc.net/problem/5585
아ㅠ 이거 여러번 풀어본건데 코드 너무 구데기로 짰다...
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baek5585{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int pay = Integer.parseInt(br.readLine());
int count = 0, change = 0;
count += (1000 - pay) / 500;
change = (1000 - pay) % 500;
count += change / 100;
change = change % 100;
count += change / 50;
change = change % 50;
count += change / 10;
change = change % 10;
count += change / 5;
change = change % 5;
count += change;
System.out.println(count);
}
}
네 노가다 했습니다.
아주 마음에 안드는데... 뭔가 맞긴 맞으니까 뇌가 안돌아가서 다른사람껄로 얼른 정화해야겠음
다른 사람 풀이
맞아 동빈씨가 그리디 알고리즘 알려주면서 알려줬었다.
이르케.....하면 아주 깔끔하지.....!
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baek5585{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int pay = Integer.parseInt(br.readLine());
int[] coin = {500, 100, 50, 10, 5, 1};
int count = 0;
pay = 1000 - pay;
for(int i = 0; i < 6; i++) {
count += pay / coin[i];
pay %= coin[i];
}
System.out.println(count);
}
}
오 근데 위에 노가다가 성능은 아주아주 조금 낫다 ㅎㅎ
'알고리즘 > 백준' 카테고리의 다른 글
[BaekJoon] 백준 10162번 _ 전자레인지 for JAVA _ 그리디 알고리즘 (0) | 2022.01.19 |
---|---|
[BaekJoon] 백준 2217번 _ 로프 for JAVA _ 그리디 알고리즘 (0) | 2022.01.18 |
[BaekJoon] 백준 1026번 _ 보물 for JAVA _ 그리디 알고리즘 (0) | 2022.01.18 |
[BaekJoon] 백준 13305번 _ 주유소 for JAVA _ 그리디 알고리 (0) | 2022.01.17 |
[BaekJoon] 백준 1931번 _회의실 배정 for JAVA _ 그리디 알고리즘 (0) | 2022.01.17 |