728x90
📍 프로그래머스 2단계 - 프린터
⚡️ 나의 풀이
스택/큐를 이용한 문제인데, 중요도에 따라 출력해야 하는 문서가 달라지므로 주의한다. location
과 동일한 index
를 쉽게 찾기 위해 index
배열을 새로 만들어 priorities.length
만큼 index
의 값을 주었다.
priorities
의max
값을 찾는다.priorities[0]
값과max
가 동일한지 확인한다.(중요도가 가장 높은 문서인지 확인하는 작업)max
값과 동일하면shift
시키는데, 이때location
이랑 동일한지도 확인한다.priorities[0]
값과max
가 동일하지 않으면 나머지 목록 중 중요도가 높은 문서가 있으므로 제일 뒤로 보낸다.arr.push(arr.shift())
728x90
function solution(priorities, location) {
let n = priorities.length;
let index = Array.from({ length: n }, (v, k) => k);
let cnt = 1;
while (priorities.length !== 0) {
let max = Math.max.apply(null, priorities);
if (max === priorities[0]) {
if (index[0] === location) return cnt;
else priorities.shift(), index.shift(), cnt++;
} else {
priorities.push(priorities.shift());
index.push(index.shift());
}
}
}
반응형
'Algorithm > 프로그래머스(Programmers)' 카테고리의 다른 글
[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 기능개발 (0) | 2021.10.22 |
---|---|
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 모의고사 (0) | 2021.10.21 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 짝지어 제거하기 (0) | 2021.10.18 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 직사각형 별 찍기 (0) | 2021.08.03 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 가운데 글자 가져오기 (0) | 2021.08.03 |
댓글