알고리즘

백준 1817번 짐 챙기는 숌 (JAVA)

박카스마시며코딩 2023. 10. 16. 19:57

https://www.acmicpc.net/problem/1817

 

1817번: 짐 챙기는 숌

첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책

www.acmicpc.net

 

저는 구현을 통해 문제를 해결하였습니다.

입력의 합을 구하고 이 값이 m보다 크다면 결과값을 늘려주어 문제를 해결하였습니다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.function.Function;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        Function<String,Integer> stoi = Integer::parseInt;
        int n = stoi.apply(st.nextToken());
        int m = stoi.apply(st.nextToken());
        if(n == 0){
            System.out.println(0);
            return ;
        }
        int result = 1;
        int sum = 0;
        st = new StringTokenizer(br.readLine());
        for(int i = 0 ; i < n ; i++){
            int temp = stoi.apply(st.nextToken());
            if(sum + temp > m){
                sum = temp;
                result++;
            }else{
                sum += temp;
            }
        }
        System.out.println(result);
    }
}