function solution(priorities, location) {
let queue = priorities.map((priority, idx) => [priority, idx]);
let count = 0;
while (queue.length > 0) {
let cur = queue.shift();
if (queue.some(process => process[0] > cur[0])) {
queue.push(cur);
} else {
count++;
if (cur[1] == location) {
return count;
}
}
}
}
- 큐에 [priority, index]형식(ex. (2, 0), (1, 1), (3, 2), (2, 3))으로 저장
- 큐의 맨 앞 요소 cur보다 우선순위가 큰 요소가 있으면 다시 큐에 push
- 없으면 count 증가
- 이 때 index가 location과 같으면 count 리턴
'[LG 유플러스] 유레카 > 코딩테스트' 카테고리의 다른 글
[JS]프로그래머스 - 구명보트 (Lv.2) (0) | 2025.02.25 |
---|---|
[JS]프로그래머스 - 피로도 (Lv.2) (0) | 2025.02.25 |
[JS]프로그래머스 - 기능개발 (Lv.2) (0) | 2025.02.24 |
[JS]프로그래머스 - 점프와 순간이동 (Lv.2) (0) | 2025.02.24 |
[JS]프로그래머스 - 최솟값 만들기 (Lv.2) (0) | 2025.02.23 |
function solution(priorities, location) {
let queue = priorities.map((priority, idx) => [priority, idx]);
let count = 0;
while (queue.length > 0) {
let cur = queue.shift();
if (queue.some(process => process[0] > cur[0])) {
queue.push(cur);
} else {
count++;
if (cur[1] == location) {
return count;
}
}
}
}
- 큐에 [priority, index]형식(ex. (2, 0), (1, 1), (3, 2), (2, 3))으로 저장
- 큐의 맨 앞 요소 cur보다 우선순위가 큰 요소가 있으면 다시 큐에 push
- 없으면 count 증가
- 이 때 index가 location과 같으면 count 리턴
'[LG 유플러스] 유레카 > 코딩테스트' 카테고리의 다른 글
[JS]프로그래머스 - 구명보트 (Lv.2) (0) | 2025.02.25 |
---|---|
[JS]프로그래머스 - 피로도 (Lv.2) (0) | 2025.02.25 |
[JS]프로그래머스 - 기능개발 (Lv.2) (0) | 2025.02.24 |
[JS]프로그래머스 - 점프와 순간이동 (Lv.2) (0) | 2025.02.24 |
[JS]프로그래머스 - 최솟값 만들기 (Lv.2) (0) | 2025.02.23 |