프로그래머스: 2019 KAKAO BLIND RECRUITMENT>실패율
카카오가 붙어있어서 풀기도 전에 쫄았다..ㅠㅠ
하지만 이제 프로그래머스 level1에서는 카카오나 챌린지 문제 밖에 없기 때문에 풀어야 한다😭😭
😎그래도 풀었긴 함!! 한...3시간쯤 걸려서요...
정리: 게임 스테이지마다 실패율을 계산한 후 내림차순으로 반환하기
문제를 천천히 읽으면서 이해해야 한다!
🌈 간단!
매우 간단하지만 코드 작성과정은 그렇지 못했음. 푸는 과정에서 접근 방법도 많이 바꾸며 삽질 여러번 했음 ㅠㅠ
key
와 value
값을 주기로 함.key
와 value
에 어떻게 접근해야할 지 고뇌에 빠짐: 내림차순 정렬 하기위해서 혼자 이것저것 해보다가 결국 구글검색함(매우 간단했음)// 2019 KAKAO BLIND RECRUITMENT
function solution(N, stages) {
var answer = [];
var fail = [];
var now = [];
var result = [];
var fail_count = 0;
var now_count = 0;
for(var i=0; i<N; i++){ //실패율 구해서 result 배열에 담는다
stages.map(num =>{
if(num==i+1) fail_count += 1;
if(num>=i+1) now_count += 1;
})
fail.push(fail_count); //스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수
now.push(now_count); //스테이지에 도달한 플레이어 수
fail_count = 0;
now_count = 0;
result.push({fail:fail[i]/now[i],stage:i+1}) //실패율 계산해서 result에 담는다
}//1️⃣console.log(result)
result.sort((a,b)=>b.fail-a.fail).map(n=>answer.push(n.stage))
//👆result를 내림차순 정렬 한 다음에 차례로 result.stage의 value를 answer에 담는다
return answer;
}
if(num==i+1) fail_count += 1;
: 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수if(num>=i+1) now_count += 1;
: 스테이지에 도달한 플레이어 수👉실패율: 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
//1️⃣console.log(result)
의 결과result.sort((a,b)=>b.fail-a.fail)
: 배열안의 value
에 접근해서 내림차순 정렬하는 코드