반응형
문제 링크 : https://www.acmicpc.net/problem/14916
[백준] 14916번: 거스름돈 (실버5, 그리디 알고리즘, JAVA)
count 변수를 선언하여 최종적으로 출력한 동전의 최소 개수를 구합니다. while true를 사용하여 무한루프를 실행시키고, 각각의 조건식은 다음과 같습니다.
- N%5 == 0 && N != 0
5로 나누어 떨어지고, N이 0이 아닐 경우에는 count를 증가시키고 N에서 5를 감소시킵니다. - N/2 >= 1
N의 값에서 2를 나눳을 때 최소 1번 이상 나누어질 경우 count를 증가시키고 N에서 2를 감소시킵니다. - N != 0
N의 값이 0이 아닐 경우 -1를 출력하고 반복문을 종료합니다. - 그 외의 경우에는 N에 대한 모든 계산이 끝나고 나누어 떨어지는 경우이므로 count를 출력하고 종료합니다.
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int count = 0;
while(true) {
if(N%5 == 0 && N != 0) { // 5원 거스름돈이 1번이상 가능할 때
count++;
N = N-5; // 5로 나누고나서의 나머지값을 저장
} else if(N/2 >= 1) { // 2원 거스름돈이 1번 이상 가능할 때
count++;
N = N-2; // 2로 나누고나서의 나머지값을 저장
} else if(N != 0) {
System.out.println("-1");
break;
} else {
System.out.println(count);
break;
}
}
}
}
반응형
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 1302번: 베스트셀러 (실버4, 자료구조, 문자열, 정렬, 해시를사용한 집합과 맵 JAVA) (0) | 2024.01.20 |
---|---|
[백준] 1100번: 하얀 칸 (브론즈2, JAVA) (0) | 2024.01.20 |
[백준] 14659번: 한조서열정리하고옴ㅋㅋ (브론즈1, 그리디 알고리즘, 50%~53% 시간초과, JAVA) (2) | 2023.12.29 |
[백준] 1145번: 적어도 대부분의 배수 (브론즈1, 브루트포스 알고리즘, JAVA) (0) | 2023.12.28 |
[백준] 1253번: 좋다 (골드4, JAVA) (479) | 2023.12.21 |