OJ

[BOJ] 9237 이장님 초대 (JAVA)

P3PP4 2023. 1. 1. 10:00

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

 

9237번: 이장님 초대

입력은 두 줄로 이루어져 있다. 첫째 줄에는 묘목의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄에는 각 나무가 다 자라는데 며칠이 걸리는지를 나타낸 ti가 주어진다. (1 ≤ ti ≤ 1,000,000)

www.acmicpc.net

내림차순으로 정렬한 후 한 원소씩 살펴보는 문제입니다.

람다식을 사용했기 때문에 계산이 조금 느릴 수 있습니다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        PriorityQueue<Integer> pq = new PriorityQueue<>((o1, o2) -> {
            return o2 - o1;
        });
        for (int i = 0; i < N; i++) {
            pq.offer(Integer.parseInt(st.nextToken()));
        } // end of input

        int result = 0;
        int day = 1;

        while(!pq.isEmpty()) {
            result = Math.max(result, ++day + pq.poll());
        }

        System.out.print(result);

    }
	
}