프로그래머스 레벨1 다 풀기, 그 두번째 문제이다.
이해력이 부족한 것인지.. 문제를 이해하는데 다소 시간이 소요됐다. 😭
문제는 다음과 같다.
1. 필터 메소드를 잘못 사용하여 푸쉬를 한 이후에 해당 유저들을 제거하지 못했다.
2. 특정한 스테이지에서 누구도 실패하지 않았을 가능성이 있는데 미처 인지하지 못하고 이 예외처리를 적용하는데 시간이 제일 많이 소요됐다.
function solution(N, stages) {
var answer = [];
let data = []
for(let i = 1; i <= N; i++) {
let users = stages.filter(user => user === i)
if(users.length === 0) {
data.push({ score: 0, index: i})
continue
}
data.push({ score: users.length / stages.length, index: i})
stages = stages.filter(user => user !== i)
}
data.sort((a, b) => {
if(a.score === b.score) {
if(a.index > b.index) return 1
else return -1
}
if(a.score < b.score) return 1
else return -1
})
return data.map(user => user.index)
}
전부 주관적인 관점에서 회고하며 작성된 내용 입니다.