https://school.programmers.co.kr/learn/courses/30/lessons/42587
문제 분류 : 코딩테스트 연습 > 스택/큐 > 프로세스
난이도 : 2
정답 코드
import java.util.*;
class Solution {
static class node{
int idx; int value;
public node(int idx, int value){
this.idx = idx; this.value = value;
}
}
public int solution(int[] priorities, int location) {
int [] answer = new int [priorities.length];
Queue<node> q = new LinkedList<>();
Stack<Integer> stack = new Stack<>();
for(int i = 0; i < priorities.length; i++){
q.add(new node(i , priorities[i]));
}
Arrays.sort(priorities);
for(int i = 0; i < priorities.length; i++){
stack.push(priorities[i]);
}
int cnt = 1;
while(!stack.isEmpty()){
node node = q.poll();
if(stack.peek() != node.value){
q.add(node);
continue;
}
stack.pop();
answer[node.idx] = cnt;
cnt++;
}
return answer[location];
}
}
'Algorithm > Programmers Java' 카테고리의 다른 글
[Java] 프로그래머스 level3 가장 긴 팰린드롬 (1) | 2024.04.19 |
---|---|
Java 프로그래머스 기능개발 (0) | 2024.03.04 |
Java 프로그래머스 소수 찾기 (0) | 2024.03.04 |
Java 프로그래머스 더 맵게 (0) | 2024.03.04 |
Java 프로그래머스 [1차] 뉴스 클러스터링 (0) | 2024.03.04 |