프로그래머스 문제 풀이 실패율 (JS)
실패율
문제
스테이지 개수를 나타내는 숫자형 데이터 N과, 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지 번호가 담겨있는 배열을 return하는 solution 함수를 만들자
제한사항
1. N은 1이상 500이하의 자연수
2. stages의 길이는 1이상 200,000 이하
3. stages[i]는 1이상 N+1 이하의 자연 수* 각 자연수는 사용자가 현재 도전 중인 스테이지의 번호를 나타냄 * 단, N+1은 마지막 스테이지까지 클리어 한 사용자를 나타낸다.
- 만약 실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 먼저 오도록 설계
- 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0으로 정의
풀이
function solution(N, stages) { let StagesLength = stages.length; let temp = 0; const result = []; // 실패율을 계산하고 해당 stage까지 배열로 반환하는 함수 calfail 설정 const calfail = (stage,len) => { temp = stages.filter((data)=>data===stage).length; if(temp) return [temp / len, stage]; return [0,stage]; } // 스테이지를 순회하며 전 단계에 머무른 사용자를 전체 길이에서 제거하고, // 남은 사용자와 stage를 인수로 calfail 함수 호출 // 해당 데이터 result에 push for(let i = 1; i<=N; i++) { StagesLength = StagesLength-temp; let failure = calfail(i,StagesLength); result.push(failure); } // 실패율이 같다면, 번호가 낮은 순으로 정렬 // 아니라면 실패율 내림차순으로 정렬 result.sort((a,b)=>{ if(a[0]===b[0]) return a[1]-b[1]; return b[0]-a[0]; }) // 배열에서 스테이지 번호만 출력 return result.map((data)=>data[1]); }
Author And Source
이 문제에 관하여(프로그래머스 문제 풀이 실패율 (JS)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@devmomo/프로그래머스-문제-풀이-실패율-JS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)