문제 : boj2839
가장 작은 수의 봉지를 사용해야하므로 '5'를 최대한 많이 쓸수록 이득이다. 그리고 '정확히' n킬로그램을 선택해야한다. 따라서 최상의 선택인 '5'짜리 봉지를 'n/5'개 사용하는 것부터 시작해서 '5'짜리 봉지를 0개 까지 확인해보면서, 남은 설탕이 '3'짜리 봉지로 정확히 나눌 수 있다면 해당 지점이 최선의 선택이다. (그리디)
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int base = n/5+1;
while (base-->0) {
if ((n-base*5)%3==0) {
System.out.println(base+(n-base*5)/3);
return;
}
}
System.out.println(-1);
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
백준 14003 JAVA - 가장 긴 증가하는 부분 수열 5 (BOJ 14003 JAVA) (0) | 2021.12.08 |
---|---|
백준 22865 자바 - 가장 먼 곳 (BOJ 22865 JAVA) (0) | 2021.12.07 |
백준 23801 자바 - 두 단계 최단 경로 2 (BOJ 23801 JAVA) (0) | 2021.12.06 |
백준 9081 자바 - 단어 맞추기 (BOJ 9081 JAVA) (0) | 2021.12.05 |
백준 4882 자바 - 정규형 (BOJ 4882 JAVA) (0) | 2021.12.02 |
댓글