https://school.programmers.co.kr/learn/courses/30/lessons/42587
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
for(int i : priorities){
pq.add(i);
}
while(!pq.isEmpty()){
for(int i = 0; i < priorities.length; i++){
if(priorities[i] == pq.peek()){
pq.poll();
answer++;
if(i == location){
return answer;
}
}
}
}
return answer;
}
}
/*
1. 프로세스를 우선순위에 따라 다루기 위해 우선순위 큐를 선언(우선순위 높은 순대로 되도록 반대로)
2. for문을 선언하여 priorities를 순차적으로 탐색
3. 현재 큐 제일 앞에 위치한 우선순위와 priorities에 담긴 우선순위를 비교하고, 일치하는게 있다면 제거해주고 answer을 증가시킴
4. 이 과정을 반복하여 원하는 위치의 원소를 찾으면 반환
*/
'코딩테스트 > 코딩테스트 문제풀이' 카테고리의 다른 글
| [Java] 백준 <11659-구간 합 구하기4> (0) | 2025.03.09 |
|---|---|
| [Java] 프로그래머스 <멀리 뛰기> (0) | 2025.03.08 |
| [Java] 프로그래머스 <기능 개발> (0) | 2025.03.07 |
| [Java] 프로그래머스 <더 맵게> (0) | 2025.03.07 |
| [Java] 프로그래머스 <시저 암호> (0) | 2025.03.06 |