우선순위 queue를 이용하여 문제를 해결하였다 우선순위 queue를 이용하면 알아서 정렬이 되므로 우선순위를 매기고
for 문을 통해 처음부터 끝까지 돌아가면서 우선순위에 해당하는 인자를 빼내었다.
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
PriorityQueue<Integer> q = new PriorityQueue<>(Collections.reverseOrder());
int answer = 0;
for (int i : priorities)
q.add(i);
while (!q.isEmpty()) {
for (int i = 0; i < priorities.length; i++) {
if (q.peek() == priorities[i]) {
q.poll();
answer++;
if (location == i) {
return answer;
}
}
}
}
return answer;
}
}
- 우선순위 queue의 경우에는 선언시 어떤 기준으로 선언할 것인지 옵션을 넣을 수 있다. 위 문제의 경우
Collections.reverseOrder() 로 내림차순 옵션을 주었다.
우선순위 queue 이외의 경우에 다른 자료구조들 또한 옵션을 넣을 수 있는지 확인해 본바. 다른 자료구조들에서도 옵션을 줄 수 있었다. 하지만 자료구조의 특성에 맞는 옵션들만 가능했었다. 예를들어 자료구조의 크기라던지 자료구조에 대입할 배열 리스트 등을 넣을 수 있었다.
위 개념은 처음접해보았기에 자료구조에 대해 조금더 깊이 공부할 필요를 느꼈다.
'Algorithm & Data Structures > Programers' 카테고리의 다른 글
Lv 2. [1차] 뉴스 클러스터링 (0) | 2024.06.18 |
---|---|
Lv 2. 피로도 (0) | 2024.06.17 |
Lv 2. 튜플 (0) | 2024.06.13 |
Lv 2. 기능개발 (1) | 2024.06.10 |
Lv 2. 1차 캐시 (0) | 2024.06.02 |