프로그래밍-학습기록/코딩테스트
프로그래머스 | 로또의 최고순위와 최저순위 | 자바스크립트
leesche
2021. 5. 7. 23:44
- 문제 링크
해결 과정
문제 설명이 길고 복잡해 이거 1단계 맞나, 싶었지만 자세히 들여다보니 난이도가 쉬운 문제였다.
로또에서 불분명한 번호 0이 몇 개 나오는지 파악하면 최고순위와 최저순위를 자연스럽게 파악할 수 있다. 즉, 0은 어떤 번호던지 될 수 있으므로, 0이 모두 당첨번호이면 최고순위, 당첨번호가 아니면 최저순위가 된다.
따라서 이를 파악하기 위해 알아야 하는 기존의 번호들에서 몇 개가 당첨번호이고, 불분명한 번호가 몇 개인지 알아내는 것이다.
그러면 맞춘 개수에 따라 몇 등인지 알고 정답을 반환할 수 있다.
소스 코드
function solution(lottos, win_nums) {
const rankPerMatches = [6, 6, 5, 4, 3, 2, 1];
const unknownNumberCount = lottos.filter((number) => number === 0).length;
const matchCount = lottos.filter((number) => {
if (win_nums.includes(number)) {
return true;
}
}).length;
const minimumRank = rankPerMatches[matchCount];
const maximumRank = rankPerMatches[matchCount + unknownNumberCount];
return [maximumRank, minimumRank];
}