function solution(priorities, location) {
let priority = undefined;
let cnt = 0;
let isBiggest = undefined;
let prioritiesArr = priorities.map((value, index) => [value, index]);
while (true) {
priority = prioritiesArr.shift();
isBiggest = prioritiesArr.find((value) => priority[0] < value[0]);
if (isBiggest === undefined) {
if (priority[1] === location) {
return ++cnt;
} else {
cnt++;
}
} else {
prioritiesArr.push(priority);
}
}
}
index와 value 값이 담겨있는 이차원배열이 아닌 객체를 list에 집어넣어 가독성을 높였다.
find대신 some을 사용해 boolean값으로 확인하였다.
논리적인 순서는 내 풀이와 같다.
function solution(priorities, location) {
var list = priorities.map((t,i)=>({
my : i === location,
val : t
}));
var count = 0;
while(true){
var cur = list.splice(0,1)[0];
if(list.some(t=> t.val > cur.val )){
list.push(cur);
}
else{
count++;
if(cur.my) return count;
}
}
}