반응형
https://programmers.co.kr/learn/courses/30/lessons/42587
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
Queue<Integer> que = new LinkedList<>();
//큐에 값 넣기
for(int i=0; i<priorities.length; i++){
que.add(priorities[i]);
}
//오름차순으로 정렬
Arrays.sort(priorities);
int maxLength = priorities.length-1;
int index = 0;
while(!que.isEmpty()){
int top = que.poll();
//큐에서 뽑은 값이 우선순위가 가장 큰 값이라면
if(top == priorities[maxLength-index]){
//그 다음 우선순위가 높은 값을 비교하기위해 index값을 ++
index++;
//내가 원하는 위치는 한칸 앞으로 이동
location--;
//0 보다 작다는건 제일 앞에 있었다는 뜻.
if(location < 0){
return index;
}
}else{
//맨뒤로 넣는다.
que.add(top);
//내가 원하는 위치는 한칸 앞으로 이동
location--;
//제일 앞에 있었으면 다시 맨뒤로 이동
if(location < 0){
location = que.size()-1;
}
}
}
return index;
}
}
반응형
'코딩테스트 > 프로그래머스 2단계' 카테고리의 다른 글
프로그래머스 2단계 - 더 맵게(힙) (0) | 2021.09.13 |
---|---|
프로그래머스 2단계 - 주식가격(스택/큐) (0) | 2021.09.13 |
프로그래머스 2단계 - 다리를 지나는 트럭(스택/큐) (0) | 2021.09.09 |
프로그래머스 2단계 - 기능개발(스택/큐) (0) | 2021.09.09 |
프로그래머스 2단계 - 위장(해쉬) (0) | 2021.09.08 |