728x90
https://www.acmicpc.net/problem/14916
풀이)
근로 점심시간에 낮잠자고 비몽사몽 백준을 보다가 내가 못푼 문제가 있는거 아니겠어?!
내가?? 하면서 봤더니 거스름돈이네ㅋㅋㅋㅋㅋㅋㅋ
그래서 눈 반만 뜨고 풀었는데 이게 풀리네
나 자신,, 나름 성장하고 있는걸지도,,? 오이오이~~~
암튼 풀이는 간단했음
이런 DP문제는 최소 동전이니까 큰 금액 동전으로 줄 수 있는만큼 주고 남은 돈은 작은 동전으로 거슬러 주면 된다
근데 딱 안나눠질수도 있으니까 난 반복문으로 풀었다
이 문제는 2원이랑 5원 뿐이니까 5원으로 거스름돈을 나눌 수 있는 최댓값을 기준으로 반복문을 돌려서 남은 거스름돈을 2원으로 줄 수 있으면 그걸 반환하도록 하고, 만약 아예 못 주면 -1을 반환하도록 해놨다
아래 코드보면 이해갈듯~~
자바 코드)
import java.util.*;
public class boj14916 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
int fiveMax = n/5;
for(int i=fiveMax;i>=0;i--) {
int num = n - (5*i);
if(num%2==0) {
count = i;
count += num/2;
break;
}
}
if(count==0) {
count = -1;
}
System.out.println(count);
}
}
그럼 이제 자소서 마저 쓰러 안녕~
728x90
'코딩테스트 > BOJ' 카테고리의 다른 글
[그리디] 백준 11399번 ATM (0) | 2022.02.28 |
---|---|
[JAVA] 백준 2512번 - 예산 (0) | 2022.02.22 |
[JAVA] 백준 2606번 - 바이러스 (0) | 2022.02.18 |
[JAVA] 백준 2178번 - 미로 탐색 (0) | 2022.02.17 |
[JAVA] 백준 2667번 - 단지번호붙이기 (0) | 2022.02.16 |
댓글