Playground/자바문제집

[백준] 1817번

미숫가루설탕많이 2023. 6. 24. 23:30

아ㅏㅏㅏㅏㅏㅏㅏ주 그냥 허를 찌르는 문제를 만났다.

 

제출하면 자꾸 NPE가 발생하는데, 도대체 어디서 발생하는 건지 알 수가 없었다. 하지만 문제를 똑바로 읽지 않은 나의 실수였으니...

 

첫 번째, N이 0보다 크거나 '같고'.. 같다는 가정을 하지 않았다. 그래서 N이 0일 경우에는 0을 반환하도록 만들었지만 여전히 NPE는 발생했다.

 

 

두 번째, 다시 문제를 자세히 살펴보니 'N이 0보다 큰 경우에' 무게가 주어진다고 했다. 설마 N이 0이면 아예 둘째 줄에 추가 정보가 들어오지 않나?? 하고 0을 반환하는 코드를 StringTokenizer를 받기 전으로 옮기니까 통과했다.

 

 

 

제출 코드
public class Main {

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

        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        if (N == 0) {
            System.out.println(0);
            return;
        }

        int M = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        br.close();

        int count = 1, boxWeight = M;
        while (N-- > 0) {
            int weight = Integer.parseInt(st.nextToken());

            if (boxWeight - weight < 0) {
                count++;
                boxWeight = M;
            }
            boxWeight -= weight;
        }

        System.out.println(count);
    }
}

 

문제를 꼼꼼히 보도록 하자,,.,.

'Playground > 자바문제집' 카테고리의 다른 글

[백준] 2002번  (0) 2023.07.01
[백준] 11123번  (0) 2023.06.25
[백준] 1764번  (0) 2023.06.16
[백준] 5430번  (2) 2023.06.09
[백준] 1049번  (0) 2023.05.23