Problem Solving/Baekjoon

[백준] 27940 가지 산사태 - Greedy / Java

graycode 2024. 2. 11. 13:15

 문제 링크

 

27940번: 가지 산사태

첫째 줄에 농장의 층수 $N$, 비가 오는 횟수 $M$, 각 층이 버틸 수 있는 빗물의 양을 나타내는 정수 $K$가 주어진다. $(1 \le N \le 10^5;$ $1 \le M \le 10^6;$ $1 \le K \le 2 \times 10^9)$ 둘째 줄부터 $M$개의 줄에 걸

www.acmicpc.net

 

 풀이 코드

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();

        read();
        int m = read(), k = read();

        int sum = 0;
        for (int i = 0; i < m; i++) {
            read();
            sum += read();

            if (sum > k) {
                sb.append(i + 1).append(" 1");
                break;
            }
        }

        bw.write(sb.length() > 0 ? sb.toString() : "-1");
        bw.flush();
    }

    private static int read() throws IOException {
        int c, n = System.in.read() & 15;
        while ((c = System.in.read()) > 32) n = (n << 3) + (n << 1) + (c & 15);

        return n;
    }

}