리그 운영진은 경기마다 기록된 점수를 배열 scores에 순서대로 저장해 두었습니다.
운영진은 특정 구간에서 서로 다른 점수만 추려 낮은 순으로 매긴 순위를 자주 조회합니다.
각 질의 queries[q] = [l, r, k]를 다음과 같이 처리하세요.
scores의 l번째부터 r번째까지(1부터 세는 번호, 양 끝 포함)를 꺼낸다k번째 값을 답으로 한다. 값이 k개보다 적으면 -1을 답으로 한다모든 질의의 답을 순서대로 배열에 담아 반환하세요.
function solution(scores: number[], queries: number[][]): number[]scores = [8,3,8,5,3,9,1], queries = [[1,4,2],[2,6,4],[3,3,1],[1,7,6]] → [5,9,8,-1]
| 질의 | 구간 | 중복 제거 후 정렬 | 답 |
|---|---|---|---|
[1,4,2] |
[8,3,8,5] |
[3,5,8] |
5 |
[2,6,4] |
[3,8,5,3,9] |
[3,5,8,9] |
9 |
[3,3,1] |
[8] |
[8] |
8 |
[1,7,6] |
전체 | [1,3,5,8,9] (5개) |
-1 |
scores = [4,4,4,4], queries = [[1,4,1],[1,4,2]] → [4,-1]
scores.length ≤ 1,000scores[i] ≤ 1,000,000queries.length ≤ 100l ≤ r ≤ scores.length, 1 ≤ k ≤ scores.length를 만족합니다k가 구간의 고유 점수 개수보다 클 수 있습니다시간 복잡도 목표: O(Q × N log N)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.