Lv.2 : 프로세스 [JavaScript]
2024. 11. 3. 19:13ㆍAlgorithm/프로그래머스
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42587
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

문제 풀이
function solution(priorities, location) {
var answer = 0;
var arr = priorities.map((e, idx) => [e, idx]);
while(arr.length > 0){
var first = arr.shift();
if(arr.filter((e)=> e[0] > first[0]).length != 0) arr.push(first);
else{
answer++;
if(first[1] == location) break;
}
}
return answer;
}
우선순위와 프로세스의 위치 둘 다 확인이 필요하므로, arr배열을 만들어 우선순위와 priorities에서의 index를 가지는 배열을 넣어준다.
테스트 1 arr : [ [ 2, 0 ], [ 1, 1 ], [ 3, 2 ], [ 2, 3 ] ]
테스트 2 arr : [ [ 1, 0 ], [ 1, 1 ], [ 9, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ] ]
arr를 돌면서 문제의 설명과 같이
제일 앞 원소를 꺼낸 후, arr에 꺼낸 원소보다 높은 우선순위를 가진 원소가 있다면 arr에 다시 넣는다.
높은 우선순위를 가진 원소가 없다면, 실행 순서인 answer을 늘려주고, 만약 꺼낸 원소의 index인 first[1]가 location과 같다면 while문을 멈추고 리턴
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
Lv.1 : 모의고사 [JavaScript] (1) | 2024.11.07 |
---|---|
Lv.2 : 의상 [JavaScript] (0) | 2024.11.06 |
Lv.2 : [1차] 캐시 [JavaScript] (0) | 2024.11.02 |
Lv.2 : 괄호 회전하기 [JavaScript] (0) | 2024.10.28 |
Lv.1 : 추억 점수 [JavaScript] (1) | 2024.10.26 |