-
[CS & Algorithm-9] 거스름돈 (Greedy)CS & Algorithm 2021. 8. 19. 22:56
BaekJoon Online Judge 5585
Question :https://www.acmicpc.net/problem/5585
Source :https://github.com/lee-maru/practice_algorithm/blob/master/src/Solution6.java
/** /** @link : https://www.acmicpc.net/problem/5585 * * @implNote 타로는 자주 JOI잡화점에서 물건을 산다. * JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. * 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. * * 입력 * 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. * * 출력 * 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. * * * @implSpec * 예제 입력 1 * 380 * 예제 출력 1 * 4 * 예제 입력 2 * 1 * 예제 출력 2 * 15 */
import java.util.Scanner; public class Solution6 { public static void main(String\[\] args) { int\[\] arr = {500,100,50,10,5,1}; Scanner sc = new Scanner(System.in); int money = 1000 - sc.nextInt(); int count = 0; // 알고리즘 복잡도 O(6) for (int i = 0; i < arr.length; i++) { if(money == 0){ // 잔돈을 다 거슬러 주면 종료 break; }else if(money >= arr\[i\]){ // 500엔보다 클경우 100엔 보다 클 경우 등등 count = count + (money/arr\[i\]); // 거스름 갯수 money = money%arr\[i\]; // 잔돈 } } System.out.println(count); } }
'CS & Algorithm' 카테고리의 다른 글
[CS & Algorithm-10] 로프 문제 (Greedy) (0) 2021.08.19 [CS & Algorithm-8] 잃어버린 괄호 (Greedy) (0) 2021.08.19 [CS & Algorithm-7] 회의실 배정 (Greedy) (0) 2021.08.19 [CS & Algorithm-6] 동전 0 (Greedy) (0) 2021.08.18 [CS & Algorithm-5] BaekJoon 설탕 배달 문제 (Greedy) (0) 2021.08.18