https://www.acmicpc.net/problem/5585
그리디 알고리즘 문제입니다.
📝 접근 방식 & 문제 풀이
타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오.
⦁ 접근 및 풀이
✔ 전 문제들과는 다르게 "1000엔 지폐를 한장 냈을 때"라는 특이한 조건이 붙어있습니다.
입력 받을 때 1000에서 입력 값을 빼준 다음 연산하면 됩니다.
📝 소스코드
⦁ 파이썬
changes = [500, 100, 50, 10, 5, 1] #엔화
T = int(input())
pay = 1000 - T
cnt = 0
for i in changes :
cnt += pay // i
pay %= i
print(cnt)
⦁ 자바
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
int T = 1000 - Integer.parseInt(input);
int[] changes = {500, 100, 50, 10, 5, 1};
int cnt = 0;
for(int i : changes) {
cnt += T / i;
T %= i;
}
System.out.println(cnt);
}
}
'자료구조 & 알고리즘 > 코딩테스트' 카테고리의 다른 글
[백준] 회의실 배정 - 1931 Python 파이썬 풀이 (0) | 2023.05.20 |
---|---|
[백준] ATM - 11399 Python 파이썬 풀이 (1) | 2023.05.16 |
[백준] 설탕 배달 - 2839 Python 파이썬 풀이 (0) | 2023.05.15 |
[백준] 전자레인지 - 10162 자바 & 파이썬 풀이 (0) | 2023.04.26 |
[백준] 세탁소 사장 동혁 - 2720 자바 & 파이썬 풀이 (0) | 2023.04.13 |