반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Archives
Today
Total
11-07 11:40
관리 메뉴

ImJay

[BOJ/Java] 2839. 설탕 배달 본문

알고리즘/BOJ - Java

[BOJ/Java] 2839. 설탕 배달

ImJay 2024. 2. 4. 16:12
반응형

[BOJ/Java] 2839. 설탕 배달

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net


풀이

package edu.ssafy.im.BOJ.No2839;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
    static int n;
    static int ans = Integer.MAX_VALUE;

    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        n = Integer.parseInt(br.readLine());

        // dp 알고리즘을 이용하여 최소 개수의 봉지 수 계산
        dp();
    }

    // 동적 계획법을 이용하여 최소 개수의 봉지 수 계산
    private static void dp() {
        int[] dp = new int[n + 1];
        Arrays.fill(dp, 2000); // 최대값으로 초기화
        dp[3] = 1; // 초기값 설정
        if (n >= 5)
            dp[5] = 1; // 초기값 설정
        for (int i = 6; i < dp.length; i++) {
            // 현재 무게에서 3kg 봉지를 사용할 경우와 5kg 봉지를 사용할 경우 중 최소값 선택
            dp[i] = Math.min(dp[i - 3] + 1, dp[i - 5] + 1);			
        }
        // 최종 결과 출력
        System.out.println(dp[n] >= 2000 ? -1 : dp[n]);
    }
}

 

반응형

'알고리즘 > BOJ - Java' 카테고리의 다른 글

[BOJ/Java] 15650. N과 M (2)  (0) 2024.02.04
[BOJ/Java] 11660. 구간 합 구하기 5  (0) 2024.02.04
[BOJ/Java] 11659. 구간 합 구하기 4  (0) 2024.02.04
[BOJ/Java] 16234. 인구 이동  (0) 2024.02.04
[BOJ/Java] 15649. N과 M (1)  (0) 2024.02.04
Comments