본문 바로가기


[JAVA] PriorityQueue in Java Priority Queue 는 우선순위 Queue 인 자료구조 이다. 주로 Heap 자료구조를 이용해 구현된다. 우선순위 큐에는 최소 우선순위 큐와 최대 우선순위 큐가 있는데 최소 우선순위 큐는 Heap의 루트(root)가 최솟값가 되도록 생성되고 반대로 최대 우선순위 큐는 최댓값이 되도록 생성된다. 선언 방법 //최소 우선순위 큐 PriorityQueue minHeap = new PriorityQueue(); //최대 우선순위 큐 PriorityQueue maxHeap = new PriorityQueue(Comparator.reverseOrder()); Priority Queue 의 default 가 minHeap 이기 때문에 min 에는 따로 설정할 게 없지만 MaxHeap 으로 할 때는 순서를 반대..
[PS] Meeting Rooms(Medium) solution in JAVA Meeting Rooms2 문제 회의시간이 주어지면 총 사용해야하는 회의실이 최소 몇개인가를 구하는 문제이다. Easy 만큼 쉬운줄알고 정렬하고 그냥 막 풀었다가 아차 싶었다. 처음에 접근한 방법은 Map 에 모든 시간 데이터를 넣고 겹치는 시간을 넣은 List 의 사이즈를 비교하는방법이었는데 아니 무슨 미팅룸 시간이라면서 10만자리 대의 숫자를 input 으로 주길래 시간초과로 실패했다. 리트코드의 단점이 아닐까 input 의 사이즈가 명시되지 않는 문제들이 있는것 PQ 를 쓰면 시간내에 들어올 수 있다. 코드를 보여주고 그림으로 설명하겠다. public Interval[] convert(int[][] arr) { return Arrays.stream(arr) .map(it -> new Interval..
[PS] Meeting Rooms(Easy) Solution in Java Meeting Room 이지 버전 풀이이다. MergeIntervals 풀이를 보고오면 매우 쉽다. public class MeetingRooms { public boolean canAttendMeetings(int[][] intervals) { Arrays.sort(intervals, (o1, o2) -> { return o1[0] == o2[0] ? Integer.compare(o1[1], o2[1]) : Integer.compare(o1[0], o2[0]); }); new ArrayList(); for(int i = 0; i intervals[i + 1][0]) { return false; } } retu..