-
[프로그래머스] 실패율 - javascript기타/코딩테스트 2022. 6. 13. 22:58
문제
전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성하라.
실패율 = 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
내 풀이
function solution(_n, _stages) { const answer = []; for (let i = 1; i <= _n; i++) { let notClear = 0, challenge = 0; _stages.forEach((v) => { if (v >= i) challenge++; // 스테이지에 도달한 플레이어 if (v == i) notClear++; // 스테이지에 도달했으나 클리어하지 못한 플레이어 }); answer.push({ stage: i, fails: notClear / challenge }); } answer.sort((a, b) => b.fails - a.fails); return answer.map((v) => v.stage); }
각 스테이지 별로 실패율을 구하고, 실패율대로 내림차순 정렬해서 스테이지 번호를 배열로 리턴하도록 함
이 문제는 어려운 편이 아니어서
어떻게 하면 이해하기 쉽고 간결한 코드가 될까라는 고민을 우선으로 작성했다
실행 테스트
const stages = [2, 1, 2, 6, 2, 4, 3, 3]; const n = 5; console.log(solution(n, stages)); // output => [3,4,2,1,5]
'기타 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 로또의 최고 순위와 최저 순위 - javascript (0) 2022.06.21 [프로그래머스] 키패드 누르기 - javascript (0) 2022.06.16 [프로그래머스] 숫자 문자열과 영단어 - javascript (0) 2022.06.14 [프로그래머스] 폰켓몬 - javascript (0) 2022.06.13 [프로그래머스] 신규 아이디 추천 - javascript (0) 2022.06.13