https://www.acmicpc.net/problem/14916
<아이디어>
동전의 개수를 최소로 사용하려면 5원을 최대한 사용해야한다.
그리고 2원으로 나눠져야 하므로 5원을 가지고 짝수로 만들어야 함을 알 수 있다.
따라서. n이 홀수일 때와 짝수일 때를 나누어 홀수면 5를 최대의 홀수번으로 나누고, 짝수면 5를 최대의 짝수번으로 나누고자 했다.
*** 5미만이 들어오면 짝수일 때는 2로 나누어지지만, 홀수일 때는 낼 수 있는 방법이 없으니 -1을 출력해야한다.
package STUDY.Week02;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Day14_BOJ_14916_거스름돈 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long n = Long.parseLong(br.readLine());
if(n < 5 && n % 2 != 0) System.out.println(-1);
else{
int cnt = 0;
// 5원 짜리 계산
int tmp = (int) n / 5;
if(n % 2 != 0){
if(tmp % 2 == 0) {
cnt = tmp - 1;
n = n - (5 * (tmp - 1));
}else{
cnt = tmp;
n = n - (5 * tmp);
}
}else{
if(tmp % 2 != 0) {
cnt = tmp - 1;
n = n - (5 * (tmp - 1));
}else{
cnt = tmp;
n = n - (5 * tmp);
}
}
// 2원짜리 계산
cnt += (int) n / 2;
System.out.println(cnt);
}
}
}
'코테 > 백준' 카테고리의 다른 글
99클럽 코테 스터디 16일차 TIL 그리디(게임을 만든 동준이) (1) | 2024.11.12 |
---|---|
99클럽 코테 스터디 15일차 TIL 그리디(카드문자열) (0) | 2024.11.12 |
99클럽 코테 스터디 13일차 TIL 그리디(고양이는 많을수록 좋다) (1) | 2024.11.10 |
99클럽 코테 스터디 12일차 TIL BFS(토마토) (0) | 2024.11.08 |
[BOJ] 1080 행렬 (Java) (0) | 2024.11.07 |