neogate   2년 전

우선순위 큐를 이용하여 시작과 끝점을 관리하는 방식으로 접근하였습니다.

1. 우선 집과 회사의 방향 상관없이 작은 쪽을 시작점, 큰 쪽을 끝점으로 보고 deque에 넣어준 뒤 정렬을 합니다.

2. 그 후, [-100000000,100000000+D]에 대하여 안에 있는 점들을 넣어준 뒤, 모든 구간에 대하여 진행을 하는데

방식은 다음과 같습니다.

우선 deque에 있는 점들중에 맨 앞에 있는 점의 시작점이 현재 구간에 끝점과 같으면 reserve (pq)에 넣어줍니다.

reserve는 저장된 점들중 시작점이 현재 구간의 x좌표보다 크다면 cur에 넣어줘서 현재 구간에 있는 점임을 표시합니다.

cur에 있는 점들은 다음 점으로 넘어가기전에 pop을 진행하여 주고 이런 식으로 cur.size() 들중 최댓값을 구하였습니다.

반례와 테스트케이스 모두 통과하였으며 중복되는 데이터와 최대 최소 데이터값에 대하여서도 돌아가는데 1%대에서 WA가 나오고 있습니다.

지적부탁드리겠습니다.

+) 생각해보니 PQ하나로 마무리지을 수 있는 문제였습니다;; 다만 정렬 순서에 대해서만 유의해야하겠습니다

댓글을 작성하려면 로그인해야 합니다.