https://programmers.co.kr/learn/courses/30/lessons/42587
public class Printer {
public int solution(int[] priorities, int location) {
int answer = 0;
// 1. 우선 순위 큐 (큰 수가 우선순위 가짐)
PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
// 2. 우선순위 큐에 우선순위 적용되게끔 배열의 값들을 꺼내어 저장
for (int i = 0; i < priorities.length; i++) {
queue.offer(priorities[i]);
}
// 3. 큐에 값이 없을때까지 while루프 돌음
while(!queue.isEmpty()){
// 4. priorites 배열을 돌며, 만약 priorites의 값이 큐에서 꺼낸 값과 같다면
// 우선순위큐의 값을 빼고, answer += 1해준뒤 해당 i가 location과 같다면 answer을 리턴
for(int i=0;i<priorities.length;i++){
if(queue.peek() == priorities[i]){
queue.poll();
answer++;
if(i == location) return answer;
}
}
}
return answer;
}
}
728x90
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
기능개발 (0) | 2022.03.22 |
---|---|
정렬 - K번째 수 (0) | 2022.03.10 |
프로그래머스 - 모의고사 (0) | 2022.03.05 |
프로그래머스 - 체육복 (0) | 2021.04.08 |