https://programmers.co.kr/learn/courses/30/lessons/42587
function solution(priorities, location) {
var answer = 0;
var queue = [];
var tIndex = location;
while(priorities.length>0){ // 중요도 높은 게 뒤에 있음
if(priorities.some(num=> num > priorities[0])){
priorities.push(priorities[0]);
priorities.shift(priorities[0]);
if(tIndex===0){
tIndex = tIndex + priorities.length-1;
}else{
tIndex = tIndex-1;
}
}else{ //맨 앞이 가장 중요도 높음
priorities.shift(priorities[0]);
answer = answer+1;
if(tIndex === 0){
break;
} else {
tIndex = tIndex-1;
}
}
}
return answer;
}
function solution(priorities, location) {
let targetIndex = location; // 중요한 부분***
let answer = 0;
// let len = priorities.length; // Q: 왜 len으로 대신하면 안되지? => 아래 logic에 따르면 priorities길이가 계속 변해야 하니까
while (priorities.length> 0) {
first = priorities.shift();
if (priorities.some((value, index) => value > first)) {
priorities.push(first);
} else {
answer = answer + 1;
if (targetIndex === 0) {
break;
}
}
if (targetIndex === 0) {
targetIndex = priorities.length - 1; //Q: 여기 왜 len으로 대체 불가? => 위에서 len을 한번 선언하고나서는 아래 변화가 반영되지 않으니까..?
} else {
targetIndex = targetIndex - 1;
}
}
return answer;
}
처음접근
-> obj 형태로 location을 기억해서 max와 비교하려함 -> some()생각못함.
while(계속할 조건)
.