728x90
반응형
문제
https://www.acmicpc.net/problem/14916
해설
이 문제는 백준을 많이 풀어본 사람이라면 여러번 봤을 문제이다.
그만큼 이와 비슷한 문제가 많다.
거슬러 줄 동전의 개수가 최소가 되기 위해서는 더 큰 값의 동전 개수가 최대로 사용되어야 할 것이다.
coin이 5원으로 나눠떨어질 때 까지 2원씩 빼주면 된다.
물론 동전 개수는 하나씩 더해주고.
2원씩 빼다보면 coin이 음수가 되는 경우가 생기는데,
그 때가 거슬러 줄 수 없는 경우이므로 "-1"을 출력해주면 된다.
코드
-파이썬
#백준 14916(거스름돈)
coin = int(input()) #거스름돈
res = 0 #동전 개수
while coin >= 0:
if coin % 5 == 0:
print(res + (coin // 5))
break
coin -= 2
res += 1
else: #거슬러줄 수 없으면
print(-1)
-자바
//백준 14916(거스름돈)
import java.util.*;
import java.io.*;
public class Boj_14916 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int coin = Integer.parseInt(br.readLine()); //거스름돈
int res = 0; //동전 개수
while(coin >= 0) {
if (coin % 5 == 0) {
System.out.println(res + (coin / 5));
break;
}
coin -= 2;
res += 1;
}
if(coin < 0) {
System.out.println(-1);
}
}
}
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[파이썬, 자바] BOJ_18238(ZOAC 2) (0) | 2021.02.02 |
---|---|
[파이썬, 자바] BOJ_12782(비트 우정지수) (0) | 2021.02.01 |
[파이썬, 자바] BOJ_1439(뒤집기) (0) | 2021.01.28 |
[파이썬, 자바] BOJ_3052(나머지) (0) | 2021.01.27 |
[파이썬, 자바] BOJ_1783(병든 나이트) (0) | 2021.01.27 |