1. 문제
programmers.co.kr/learn/courses/30/lessons/42587?language=javascript
2. 접근 방법
push, shift 메서드를 사용해서 풀었다.
Math.max사용하려고 전개 구문 사용했다.
3. 코드
Javascript
function solution(priorities, location) {
var answer = 0;
let queue = [];
for (let i=0; i<priorities.length; i++) {
queue.push(i+10);
}
while (queue.length > 0) {
let now = priorities[0]
let max_val = Math.max(...priorities)
if (now >= max_val) {
priorities.shift();
answer++;
if (queue[0] === (location+10)) {
return answer
} else {
queue.shift();
}
} else {
priorities.push(priorities.shift());
queue.push(queue.shift());
}
}
return answer;
}
4. 마치며
자바스크립트 사용하는 메서드가 너무 적어서 코드의 가독성도 떨어지고 별로 맘에 안든다 ㅠ
function solution(priorities, location) {
var arr = priorities.map((priority, index) => {
return {
index: index, priority: priority
};
});
var queue = [];
while(arr.length > 0) {
var firstEle = arr.shift();
var hasHighPriority = arr.some(ele => ele.priority > firstEle.priority);
if (hasHighPriority) {
arr.push(firstEle);
} else {
queue.push(firstEle);
}
}
return queue.findIndex(queueEle => queueEle.index === location) + 1;
}
이건 다른 사람이 푼 건데,
map으로 index와 priority를 묶어서 새로운 Object(변수명 arr)를 생성했다.
some() 메서드도 사용했다.
나는 if를 이용해서 했는데 ㅠ some해서 푸니까 너무 깔끔하당 8ㅅ8
그리고 마지막으로 findIndex()까지 ..!
'Algorithm > JavaScript' 카테고리의 다른 글
[프로그래머스] 멀쩡한 사각형 (0) | 2021.05.08 |
---|---|
[프로그래머스] 오픈채팅방 (0) | 2021.05.08 |
[프로그래머스] 문자열 압축 (0) | 2021.05.07 |
[프로그래머스] 기능개발 (0) | 2021.05.07 |
[프로그래머스] 짝수와 홀수 (0) | 2021.05.07 |