문제 🔽
https://school.programmers.co.kr/learn/courses/30/lessons/42587
다른사람 풀이 🔽
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;
}
}
}
내풀이🔽
1. 성공 ⭕
function solution(priorities, location) {
let answer = 0;
let arr = priorities.map((value,index)=>{
return {index:index,priority:value}
})
let count = 0
while(1){
const queue = arr.shift();
let flag = arr.some((ele)=>{
return ele.priority>queue.priority
})
if(flag){
arr.push(queue)
}else{
++count
if(queue.index==location){
break;
}
}
}
return count
느낀점🔽
Array.prototype.shift()
Array.prototype.shift()
-> 원본배열에 영향을 끼친다. // cf map과 forEach는 영향 x
Array.prototype.some()
-> 적어도 하나의 원소가 해당 조건을 만족시키면 true 값을 반환 / 아니면 false값을 반환한다. ( 하단 예시 참고 )
let arr = [1,2,3,4,5]
let flag = arr.some((ele) =>{ return ele>=6 })
console.log(flag) // false
let flag2 = arr.some((ele) =>{ return ele>=5 })
console.log(flag2) // true
'Javascript' 카테고리의 다른 글
프로그래머스 코딩테스트 풀이(js) > 문자열 나누기(lv1) (0) | 2023.07.17 |
---|---|
프로그래머스 코딩테스트 풀이(js) > 피로도 (0) | 2023.07.13 |
프로그래머스 코딩테스트 풀이(js) > 기능개발 (0) | 2023.07.09 |
프로그래머스 코딩테스트 풀이(js) > 할인 행사 (0) | 2023.07.06 |
프로그래머스 코딩테스트 풀이(js) > 튜플(lv2) (0) | 2023.07.05 |