문제 번호
알고리즘 분류
문제 풀이
자바스크립트의 배열 요소의 자료형에는 제한이 없다.
이를 이용해서 실패율을 먼저 계산한뒤 배열에 객체를 넣어준다. 그 이후 문제에서 주어진 조건에 따라서 정렬을 진행하고 난뒤, map 메서드를 사용하여 답을 반환한다. map 메서드의 반환값은 새로운 배열이다.
인덱스 번호 === stage 번호를 맞추기 위하여 N+1 크기의 배열을 사용하였다.
let arrived = new Array(N+1).fill(0,0,N+1);
let clear = new Array(N+1).fill(0,0,N+1);
전체코드
function solution(N, stages) {
var answer = [];
let arrived = new Array(N+1).fill(0,0,N+1);
let clear = new Array(N+1).fill(0,0,N+1);
for(let i=0; i<stages.length; i++){
for(let j=1; j<=stages[i]; j++){
arrived[j]++;
clear[j-1]++;
}
}
for(let i=1; i<=N; i++){
answer.push({'stage' : i , 'failPer' : (arrived[i] - clear[i]) / arrived[i] });
}
return answer.sort((a,b)=>{
if(a.failPer < b.failPer) return 1;
else if(a.failPer > b.failPer) return -1;
return a.stage-b.stage;
}).map(element => element.stage);
}
특이사항
자바스크립트에서는 배열의 범위를 벗어나서 사용하여도 별다른 에러가 발생하지않는다. undefined로 나온다.
'Algorithm > Programmers' 카테고리의 다른 글
[JS][프로그래머스]키패드 누르기 (0) | 2021.08.31 |
---|---|
[JS][프로그래머스]폰켓몬 (0) | 2021.08.30 |
[JS][프로그래머스]3진법 뒤집기 (0) | 2021.08.30 |
[JS][프로그래머스]1차_비밀지도 (0) | 2021.08.29 |
[JS][프로그래머스]나누어 떨어지는 숫자 배열 (0) | 2021.08.27 |