[백준 2839] 설탕 배달 (Java)
Algorithm/백준(BOJ)

[백준 2839] 설탕 배달 (Java)

반응형




[백준 2839] 설탕 배달 (Java)


출처 : 링크




구현 문제다.


5kg 봉지와 3kg 봉지로 최소 봉지 수를 구해야 한다.


가장 최소가 될 수 있는 수는 5kg로 모두 가능할 때이므로 먼저 체크했다.


그 다음 미리 3kg로 나눠지는 봉지 수도 체크하고 값을 저장시켜 놓았다.


이제 N 값에서 5씩 감소시키면서 3으로 나누어지는지 while문을 통해 진행하면 끝



N이 5보다 작아질 때까지 돌면서 처음값과 갱신된 최소값이 답이고, 변화가 없었으면 -1 출력한다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.io.BufferedReader;
import java.io.InputStreamReader;
 
public class Main_2839_설탕배달 {
 
    public static void main(String[] args) throws Exception {
 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
        int N = Integer.parseInt(br.readLine());
 
        int min = Integer.MAX_VALUE;
        int cnt = 0;
 
        if (N % 5 == 0) { // 5킬로 봉지만으로 모두 가능하면
            cnt = N / 5;
            if (min > cnt)
                min = cnt;
            System.out.println(cnt);
            System.exit(0); // 무조건 최소니까 끝냄
        }
        if (N % 3 == 0) { // 3킬로 봉지만으로 모두 가능하면
            cnt = N / 3;
            if (min > cnt)
                min = cnt;
        }
 
        cnt = 0;
        while (N > 5) { // 5를 빼주면서 3과 나눠지는지 확인
            cnt++//5봉지 수 추가
            N -= 5;
 
            if (N % 3 == 0) { // 3과 나눠주면 개수 체크
                int res = cnt + N / 3;
                if (min > res)
                    min = res;
            }
        }
 
        if (min == Integer.MAX_VALUE) // min값 변화 없으면 -1
            min = -1;
 
        System.out.println(min);
    }
 
}
 
cs



반응형

'Algorithm > 백준(BOJ)' 카테고리의 다른 글

[백준 14502] 연구소 (Java)  (2) 2019.03.25
[백준 16234] 인구 이동 (Java)  (0) 2019.03.25
[백준 2470] 두 용액 (Java)  (0) 2019.03.24
[백준 2004] 조합 0의 개수 (Java)  (0) 2019.03.23
[백준 2503] 숫자 야구 (Java)  (0) 2019.03.23