프로그래머스 Level 2 - 프린터
📌 문제 설명
📌 생각한 풀이 방법
- 기존 priorities의 위치를 저장하는 array를 만든다.
- priorities의 탐색 과정을 array에 똑같이 적용한다.
- 프린트가 가능할 때, priorities는 해당 값을 삭제하고, array는 해당 값을 answerArray에 추가한다.
- priorities가 존재할 때까지 2~3과정을 반복한다.
- location과 일치하는 값을 answerArray를 탐색해 해당 값에 +1을 한 후 반환한다
📌 풀이
function solution(priorities, location) {
let array = new Array(priorities.length).fill().map((obj, index) => index);
let answerArray = [];
while (priorities.length) {
const maxValue = Math.max(...priorities);
const currentValue = priorities.shift();
if (currentValue === maxValue) {
answerArray.push(array.shift());
} else {
priorities.push(currentValue);
array.push(array.shift());
}
}
for (let i = 0; i < answerArray.length; i++) {
if (answerArray[i] === location) {
return i + 1;
}
}
}