728x90
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
해당 순서(인덱스)가 몇 번째로 실행되는지 알아야 하니까 큐에 인덱스도 같이 넣기
import java.util.*;
import java.io.*;
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
ArrayDeque<int[]> q = new ArrayDeque<>();
// 큐 채우기
for(int i=0; i<priorities.length; i++){
q.offer(new int[] {i, priorities[i]});
}
while(!q.isEmpty()){
int[] current = q.poll();
int currprio = current[1];
// 방금 꺼낸 프로세스보다 우선순위 높은게 있으면 다시 큐에 넣기
boolean flag = false;
for(int[] i : q){
if(currprio < i[1]){
q.offer(current);
flag = true;
break;
}
}
// 우선순위 더 높은게 없는 경우 > 실행
if(!flag){
answer++;
if(location == current[0]){
return answer;
}
}
}
// 1' 1 9 1 1 1
// 1 9 1 1 1 1'
//! 9 1 1 1 1' 1
//! 1 1 1 1' 1
//! 1 1 1' 1
//! 1 1' 1
//! 1' 1
return answer;
}
}'Algorithm > Programmers' 카테고리의 다른 글
| [Lv.2] 카펫 : Java (0) | 2025.09.26 |
|---|---|
| [Lv.2] 게임 맵 최단거리 : Java (0) | 2025.09.26 |
| [Lv.2] JadenCase 문자열 만들기 : Java (0) | 2025.09.26 |
| [Lv.2] 괄호 회전하기 : Java (0) | 2025.09.26 |
| [Lv.2] 문자열 압축 : Java (0) | 2025.09.26 |