Hi, There!
안녕하세요, 바오밥입니다.
목차
- 문제
- 풀이
문제
문제 내용
https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=java
풀이
나의 풀이
- 내림차순 우선순위 큐를 생성한다.
- 우선순위 큐가 빌 때까지 우선순위 배열과 비교 순회하면서 우선순위 값이 동일한 경우 큐에서 꺼내 우선순위를 카운팅한다.
- 만약 비교할 프로세스의 위치 값과 현재 순회하고 있는 배열의 인덱스(위치)가 동일한 경우 카운팅한 값을 반환한다.
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
// 내림차순 우선순위 큐 생성
PriorityQueue<Integer> que = new PriorityQueue<>(Collections.reverseOrder());
int answer = 0;
// 우선순위 큐에 요소 추가
for(int p : priorities)
que.offer(p);
// 큐가 빌 때까지 반복
while(!que.isEmpty()) {
// 우선순위 배열 인덱스 순회
for(int i=0; i<priorities.length; i++) {
// 우선순위 큐의 값과 우선순위 배열 순회 중 값이 동일한 경우
if(que.peek() == priorities[i]) {
que.poll();
answer++; // 우선순위 카운팅
// 만약 비교할 프로세스의 위치값과 동일한 경우 카운팅한 값 반환
if(location == i) return answer;
}
}
}
return answer;
}
}
'Dev > PS' 카테고리의 다른 글
[프로그래머스-코딩테스트 연습] 주식가격 (0) | 2023.12.05 |
---|---|
[프로그래머스-코딩테스트 연습] 다리를 지나는 트럭 (1) | 2023.12.05 |
[프로그래머스-코딩테스트 연습] 올바른 괄호 (0) | 2023.12.05 |
[프로그래머스-코딩테스트 연습] 기능개발 (0) | 2023.12.05 |
[프로그래머스-코딩테스트 연습] 같은 숫자는 싫어 (0) | 2023.12.05 |