https://school.programmers.co.kr/learn/courses/30/lessons/155651
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
private static class Reservation{
int startTime;
int endTime;
public Reservation(int startTime, int endTime){
this.startTime = startTime;
this.endTime = endTime;
}
}
public int solution(String[][] book_time) {
int answer = 0;
int size = book_time.length;
Arrays.sort(book_time,(o1,o2)->{
return o1[0].compareTo(o2[0]);
});
Reservation[] reservations = new Reservation[size];
for(int i = 0 ; i < size ; i++){
String[] str = book_time[i];
Reservation reservation = changeReservation(str);
reservations[i] = reservation;
}
PriorityQueue<Reservation> pq = new PriorityQueue<>((o1,o2)->{
return o1.endTime - o2.endTime;
});
for(int i = 0 ; i < size ; i++){
if(!pq.isEmpty() && pq.peek().endTime <= reservations[i].startTime){
pq.poll();
}
pq.offer(reservations[i]);
answer = Math.max(answer,pq.size());
}
return answer;
}
private static Reservation changeReservation(String[] str){
int startTime = strToTime(str[0]);
int endTime = strToTime(str[1]) + 10;
return new Reservation(startTime,endTime);
}
private static int strToTime(String str){
String[] temp = str.split(":");
int hour = Integer.parseInt(temp[0]);
int min = Integer.parseInt(temp[1]);
return hour * 60 + min;
}
}
'알고리즘' 카테고리의 다른 글
백준 24885번 주식 (JAVA) (0) | 2023.04.06 |
---|---|
백준 5566번 주사위 게임 (JAVA) (0) | 2023.04.05 |
프로그래머스 과제 진행하기 (JAVA) (0) | 2023.04.03 |
프로그래머스 표현 가능한 이진트리 (JAVA) (0) | 2023.04.02 |
프로그래머스 택배 배달과 수거하기(JAVA) (0) | 2023.04.01 |