2026/08/05 3

295. Find Median from Data Stream java 풀이

굉장히 오래 헤맨 문제Node 로 푸는건가 PQ로 푸는건가 했는데 PQ 로 풀면 구할 수 있었다. 리밸런싱과 값 처리만 할줄 알면 된다. 이걸 근데 코테중에 떠올릴 수 있을지는 모르겠다. class MedianFinder { // PQ 두개 PriorityQueue lower; // 작은 값들을 가지고 있을 큐 -> 내림차순 PriorityQueue upper; // 큰 값들을 가지고 있을 큐 // 둘의 크기가 일정하게 유지되면 된다. // 크기를 맞춰서 안맞으면 하나 뺴서 하나 넣고 구하면 가운데를 구할 수 있음 public MedianFinder() { lower = new PriorityQueue(Comparator.reverseOrder()); ..

981. Time Based Key-Value Store java 풀이

이거는 굉장히 쉽다. timestamp 는 무조건 증가하니까(이분탐색)들고와서(HashMap)이하를 return 해주면 된다. class Store { int timestamp; String value;}class TimeMap { // key - value 와 timestamp 를 저장한다. // get이 핵심 // get 할 때 key 와 timestamp 를 쓰면, 그 timestamp 이하의 key 에 대한 value 가 return 된다. // 풀이 방법 // get // key 로 찾으면 timestamp 를 찾는다. // 저장을 순서대로 한다면? // 결국 key 가져와서 거기서 이분탐색으로 timestamp ..

leetCode - 1845. Seat Reservation Manager java 풀이

class SeatManager { // 예약 / 해지 // 낮은 순으로 예약 가능 // 해지는 원하는 숫자에 가능 // Set 이랑 PQ 쓰면 되지 않나? // 낮은 숫자로 만드는건 PQ // 예약 되었는지는 Set PriorityQueue pq; // 여기 있는 것들은 남은 자리 Set set; // 여기 있는 것들은 이미 누군가 앉은 자리 // 자리를 뺄 때에는 set 에 있는지 파악해서 있으면 set 에서 지우고 pq 에 넣어주면 된다. // pq 에 있는건 무조건 빈자리 // 그럼 set 의 용도는? 뺄 수 있는지 확인을 위함 int size; public SeatManager(int n) { this.si..