https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
이번 포스팅은 백준 알고리즘 사이트의 2839번 설탕 배달 문제입니다.
난이도 실버4에 해당되며 Java언어를 통해 풀어보았습니다.
위 예제와 같이 설탕배달 시 봉지의 개수를 최소화하여 배달하는 프로그램입니다.
포인트는 5kg 봉지를 최대로 사용하여 배달을 하는 것 입니다.
아이디어
① 배달 무게를 5kg로 나눈 몫을 초기값으로 설정한다.(5kg봉지의 활용가능 최대값)
② 남은 무게가 3kg으로 모두 담을 수 있는지를 체크하여 가능하다면 출력 후 반복문을 끝낸다.
③ 활용가능한 5kg봉지의 개수가 0이 될때까지 반복문을 반복한다.
④ 배달무게가 3과 5를 이용해 나누어 떨어지지 않으면 "-1"을 출력한다.
해결코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;
import java.util.StringTokenizer;
public class BJ2839 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bf.readLine());
int cnt = 0;
for(int i= N/5; i>=0; i--) {
int num5 = N - (i*5);
if(num5%3 == 0) {
int num3 = num5/3;
cnt += i+num3;
System.out.println(cnt);
break;
}
}
if(cnt == 0)
System.out.println("-1");
}
}
'Algorithm > Solution' 카테고리의 다른 글
[BaekJoon] 백준 7568번 덩치(Java) (1) | 2022.10.31 |
---|---|
[BaekJoon] 백준 2864번 5와 6의 차이(Java) (1) | 2022.09.24 |
[BaekJoon] 백준 20364번 부동산다툼(Java) (1) | 2022.09.09 |