반응형
https://www.acmicpc.net/problem/2839
풀이
이번 문제는 그냥 수학적 사고 테스트 문제이다.
3kg과 5kg 두 가지의 설탕 봉지를 이용해서 배달하려는 무게를 정확하게 맞추어 봉지의 개수를 최소한으로 하는 게 목표이다.
처음엔 문제를 너무 어렵게 생각했었다. 간단하게 생각해서 5kg의 설탕 봉지를 많이 사용하면 그만큼 봉지의 개수를 최소한으로 할 수 있다는 걸 생각하지 못 했다. 이걸 알게 된 후에는 문제가 엄청 쉬워졌다.
그냥 배달하려는 무게가 5로 나누어진다면 5를 나누고, 그렇지 않다면 3을 빼주면 된다.
위 방법을 무게가 0이 될 때까지 반복하다가 음수가 된다면 -1을 반환하고, 0으로 정확하게 떨어진다면 봉지의 개수를 반환하면 된다.
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int weight = Integer.parseInt(br.readLine());
int cnt = 0;
while (weight > 0) {
if (weight % 5 == 0) {
cnt += (weight / 5);
weight = 0;
} else {
weight -= 3;
cnt++;
}
if (weight < 0) cnt = -1;
}
System.out.println(cnt);
}
}
반응형
'알고리즘 > 다이나믹 프로그래밍(DP)' 카테고리의 다른 글
[백준]JAVA - 14501번: 퇴사 (0) | 2022.10.13 |
---|---|
[백준]JAVA - 1149번: RGB거리 (0) | 2022.10.13 |
[백준]JAVA - 2579번: 계단 오르기 (0) | 2022.10.05 |
[백준]JAVA - 1463번: 1로 만들기 (0) | 2022.09.19 |
[백준]JAVA - 2156번: 포도주 시식 (0) | 2022.09.09 |