[프로그래머스] 절대 외부 IDE를 써선 안돼/Java

[lv2] 호텔 대실

SH3542 2024. 12. 12. 18:06

https://school.programmers.co.kr/learn/courses/30/lessons/155651

 

파싱 + 정렬 + 우선순위 큐(스케쥴링) 문제다.

웰노운 문제에 파싱(시간활용)을 섞은 느낌이었다.

import java.util.*;

class Solution {
    public int solution(String[][] book_time) {
        int R = book_time.length;
        int loom = 1;

        int[][] times = new int[R][2];
        PriorityQueue<Integer> pq = new PriorityQueue<>();

        for(int i=0; i<R; i++) {
            String[] stInfo = book_time[i][0].split(":");
            String[] edInfo = book_time[i][1].split(":");
            times[i][0] = Integer.parseInt(stInfo[0]) * 60 + Integer.parseInt(stInfo[1]);
            times[i][1] = Integer.parseInt(edInfo[0]) * 60 + Integer.parseInt(edInfo[1]);
        }

        // 대실 시작 시간순 정렬
        Arrays.sort(times, (a1, a2) -> a1[0] - a2[0]);

        for(int i=0; i<R; i++) {
            int st = times[i][0];
            int ed = times[i][1] + 10;

            while(!pq.isEmpty() && pq.peek() <= st) {
                pq.poll();
            }
            if(!pq.isEmpty() && pq.peek() > st) {
                loom = Math.max(pq.size() + 1, loom);
            }

            pq.offer(ed);
        }

        return loom;
    }
}

'[프로그래머스] 절대 외부 IDE를 써선 안돼 > Java' 카테고리의 다른 글

[lv2] 배달  (0) 2024.12.13
[lv2] 시소 짝꿍  (0) 2024.12.12
[lv2] 할인 행사  (0) 2024.12.12
[lv2] k진수에서 소수 개수 구하기  (0) 2024.12.12
[lv2] 마법의 엘리베이터  (0) 2024.12.10