https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
1년 전에 c언어로 풀었던 문제인데 이번 학습동아리를 위해 자바로 다시 풀었다.
이 문제는 그리디 알고리즘을 설명할 수 있는 가장 간단한 문제라고 생각한다. 최대한 적은 수의 봉지를 사용해서 설탕을 옮기는 방법을 구하는 문제인데, 이를 위해서는 5킬로그램 봉지를 최대한 많이 사용해야하면서도, 이를 사용하고 남은 설탕의 그람수가 3으로 나누어 떨어져야 한다. 따라서 나는 주어진 설탕의 수를 5로 나눈 후 이 값부터 0까지 차례로 해당 조건에 맞는지 탐색했고, 조건에 맞다면 그 때가 가장 최적의 정답이니 이를 출력하고 exit했다. 만약 조건에 맞는 답이 없다면 -1을 출력하도록 하였다.
import java.util.*;
import java.io.*;
import java.math.*;
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 k = n/5;
for(int i = k;i>=0;i--){
if((n-i*5) % 3 == 0){
int cnt = i;
cnt += (n-i*5)/3;
System.out.println(cnt);
System.exit(0);
}
}
System.out.println(-1);
}
}
분명 코드는 자바를 더 간결하게 짰는데 시간차이 무엇....
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
백준 [자바 java] 1541 : 잃어버린 괄호 (0) | 2023.07.23 |
---|---|
백준 [자바 java] 1026 : 보물 (0) | 2023.07.23 |
백준 [java 자바] 1092 : 배 (0) | 2023.07.18 |
백준 [자바 java] 1461 : 도서관 (0) | 2023.07.15 |
백준 [자바 java] 14719 : 빗물 (0) | 2023.07.15 |