- 난이도: Lv2
프로그래머스 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42587
풀이 링크(GitHub): hayannn/CodingTest_Java/프로그래머스/2/프로세스
풀이 시간 : 24분
[DeQueue를 통해 양방향 구성]
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
Deque<int[]> deque = new ArrayDeque<>();
List<Integer> sortedPriorities = new ArrayList<>();
for (int i = 0; i < priorities.length; i++) {
deque.offer(new int[]{i, priorities[i]});
sortedPriorities.add(priorities[i]);
}
sortedPriorities.sort(Collections.reverseOrder());
int count = 0;
int index = 0;
while (!deque.isEmpty()) {
int[] current = deque.poll();
if (current[1] != sortedPriorities.get(index)) {
deque.offer(current);
continue;
}
count++;
index++;
if (current[0] == location) {
return count;
}
}
return count;
}
}