728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42587?language=java
import java.util.LinkedList;
import java.util.Queue;
class Solution {
class Task{
int location;
int priority;
public Task(int location, int priority){
this.location = location;
this.priority = priority;
}
}
public int solution(int[] priorities, int location) {
int answer = 0;
Queue<Task> queue = new LinkedList<>();
for(int i=0; i<priorities.length; i++){
queue.add(new Task(i, priorities[i]));
}
int now = 0;
while(!queue.isEmpty()){
boolean flag = false;
Task cur = queue.poll(); // 가장 먼저 보관한 값 꺼내고 반환
for(Task t : queue){
if(t.priority > cur.priority){
flag = true; // 우선순위 더 높은게 있는 경우
}
}
if(flag == true){
queue.add(cur); // 뒤로 보냄
} else {
now++;
if(cur.location == location){
answer = now;
break;
}
}
}
return answer;
}
}
재밌다 ㅎㅎ
728x90
반응형
'알고리즘' 카테고리의 다른 글
[재귀함수] Counting Cells in a Blob (0) | 2021.11.30 |
---|---|
[재귀함수] 미로찾기 (0) | 2021.11.29 |
[프로그래머스/C++] 베스트앨범 (0) | 2021.10.13 |
[C++] vector, map (0) | 2021.10.06 |
[프로그래머스/C++] 위장 (0) | 2021.10.06 |