출처 : 프로그래머스 코딩테스트 연습 - 실패율
https://programmers.co.kr/learn/courses/30/lessons/42889
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
❌ Solution
function solution(N, stages) {
const answer = [];
let players = stages.length;
const stageArr = new Array(N).fill(0);
// 각 스테이지별 플레이 중인 플레이어 배열
for( let i = 0; i < stages.length; i++) {
if( stages[i] <= N) {
stageArr[stages[i] - 1]++;
}
}
// 각 스테이지 별 실패율
for( let j = 0; j < stageArr.length; j++) {
let current = stageArr[j];
answer.push(stageArr[j] / players);
players -= current;
}
// 실패율 내림차순으로 스테이지 정렬
return answer;
}
✅ Solution
function solution(N, stages) {
const answer = [];
let players = stages.length;
const stageArr = new Array(N).fill(0);
console.log(stageArr)
// 각 스테이지별 플레이 중인 플레이어 배열
for( let i = 0; i < stages.length; i++) {
if(stages[i] <= N) {
stageArr[stages[i] - 1]++;
}
}
console.log(stageArr)
// 각 스테이지 별 실패율
for( let j = 0; j < stageArr.length; j++) {
let current = stageArr[j];
answer.push({idx: j + 1, ratio: stageArr[j] / players});
players -= current;
}
// 실패율 내림차순으로 스테이지 정렬
answer.sort((a,b)=>{
if(a.ratio>b.ratio){
return -1;
}else if (a.ratio<b.ratio){
return 1;
}else{
if(a.idx>b.idx){
return 1;
}else{
return -1;
}
}
})
return answer.map(el => el.idx);
}
참고
https://jongbeom-dev.tistory.com/144
'알고리즘' 카테고리의 다른 글
프로그래머스 JS | [1차] 다트게임 (0) | 2022.06.30 |
---|---|
프로그래머스 JS | 이상한 문자 만들기 (0) | 2022.06.29 |
프로그래머스 JS | 모의고사 (완전탐색) (0) | 2022.06.25 |
백준 JS | 17478번 재귀함수가 뭔가요? (0) | 2022.06.21 |
백준 JS | 1929번 소수 구하기 (0) | 2022.06.13 |