https://www.acmicpc.net/problem/14916
14916번: 거스름돈
첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.
www.acmicpc.net
이 문제는 거스름돈을 주는데 동전의 개수가 최소가 되도록 해야한다.
그리고 예외로 거슬러 줄 수 없는 돈이면 -1을 출력해야한다.
예를 들어 7을 입력으로 받으면 5로 딱 떨어지지 않기 때문에 -2 연산을 해줘서 5를 만들어 5로 나누어 떨어지도록 만들어줘야 한다.
11을 입력으로 받으면 5로 떨어지도록 -2 연산을 반복하여 딱 나누어 떨어지도록 만든다. ( 11 → 9 → 7 → 5 → 0 )
▼코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int cnt=0;
while(N>0)
{
if(N%5==0)
{
cnt = cnt + N/5 ;
break;
}
else {
N-=2;
cnt++;
}
}
if(N<0)
System.out.println(-1);
else
System.out.println(cnt);
}
}
'알고리즘 > 백준 풀이(그리디)' 카테고리의 다른 글
백준 1449번 - 수리공 항승 (1) | 2024.01.31 |
---|---|
백준 1439번 - 뒤집기 (0) | 2024.01.26 |
백준 1946번 - 신입 사원 (0) | 2024.01.19 |
백준 2217번 - 로프 (0) | 2024.01.18 |
백준 1026번 - 보물 (0) | 2024.01.17 |