728x90
function solution(N, stages) {
var answer = [];
//실패율
//배열 요소 : 실패율
let failRate = [];
let failIndex = [];
// 각 stages 실패율 = stages 숫자 갯수 / stages 이상의 숫자 갯수
for(let i = 0; i <N;i++){
failIndex[i] = i+1;
//stage이상의 숫자 갯수
let failStage = 0;
//현재 스테이지stage
let currentStage = 0;
for (let k = 0; k<stages.length;k++)
//라운드와 스테이지 요소값이 같은경우
if(stages[k] == i+1){
failStage += 1;
currentStage += 1;
}
//라운드보다 스테이지 값이 큰경우
else if(stages[k] > i+1){
failStage += 1;
}
//failRate 객체 = 스테이지 : 실패율
failRate[i] = currentStage/failStage
}
for(let h = 0; h < failRate.length; h++){
for (let j = h+1; j <failRate.length; j++){
//실패율 작으면 바꾸기
if(failRate[h] < failRate[j]){
failIndex[N] = failIndex[h];
failIndex[h] = failIndex[j];
failIndex[j] = failIndex[N];
failIndex.splice(N,1)
failRate[N] = failRate[h];
failRate[h] = failRate[j];
failRate[j] = failRate[N];
failRate.splice(N,1)
}
//인덱스 번호 정렬
else if(failIndex[h]>failIndex[j]){
failIndex[N] = failIndex[h];
failIndex[h] = failIndex[j];
failIndex[j] = failIndex[N];
failIndex.splice(N,1)
}
}
}
answer = failIndex
return answer;
}
728x90
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스 level 1 JS풀이] 내적 (0) | 2022.08.15 |
---|---|
[프로그래머스 level 1 JS풀이] 숫자 문자열과 영단어 (0) | 2022.08.15 |
[프로그래머스 level 1 JS] 음양 더하기 (0) | 2022.08.15 |
[프로그래머스 level 1 JS] 신규 아이디 추천 (0) | 2022.06.06 |
[프로그래머스 level 1 JS] 인형뽑기 (0) | 2022.06.06 |