https://programmers.co.kr/learn/courses/30/lessons/42587
1) piorities 맨 앞의 요소가 해당 배열의 가장 큰 요소일 경우, 맨앞으로 요소를 shift, location을 1 줄이고, count를 1 늘린다!
2) 그렇지 않은 경우! 맨앞의 요소를 배열 맨뒤로 옮긴다.
3) 만일 로케이션이 0이었다면, 배열의 length - 1로 변환하고, 그렇지 않았다면 location--
4) 반복문이 종료되면 count를 리턴한다.
function solution(priorities, location) {
let count = 0;
do {
if(priorities[0] === Math.max(...priorities)){
priorities.shift();
location--;
count++;
} else {
priorities.push(priorities.shift());
if(location === 0) location = priorities.length - 1;
else location--;
}
} while (location >= 0)
return count;
}
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;
}
}
}