https://www.acmicpc.net/problem/14916
14916번: 거스름돈
첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.
www.acmicpc.net
해석 및 팁
이 문제는 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지를 구하는 것입니다. 거스름돈은 2원과 5원이 있을 때 n이 5로 나누어 떨어지지 않으면 2원씩 제거하다가 5원으로 나누어 떨어질 때가 동전의 개수가 최소일 때입니다. 만약 n이 음수가 되면 거슬러 줄 수 없으므로 -1을 출력합니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
while(true) {
if(n % 5 == 0) { //5로 나누어떨어지면 몫을 count에 더하고 반복문 종료
count += n / 5;
break;
}
else {
count++;
n -= 2; //5로 나누어떨어지지 않으면 2 감소
}
if(n < 0) { //n이 0 미만이되면 거슬러줄수 없으므로 -1
count = -1;
break;
}
}
System.out.println(count);
}
}
'백준' 카테고리의 다른 글
백준 1652 누울 자리를 찾아라(Java) (1) | 2023.01.23 |
---|---|
백준 2839 설탕 배달(Java) (0) | 2023.01.23 |
백준 10826 피보나치 수 4(Java) (0) | 2023.01.23 |
백준 11931 수 정렬하기(Java) (0) | 2023.01.23 |
백준 9625 BABBA(Java) (0) | 2023.01.22 |