- 문제 링크
해결 과정
문제 설명이 길고 복잡해 이거 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];
}
'프로그래밍-학습기록 > 코딩테스트' 카테고리의 다른 글
바닐라코딩 프렙 지원부터 부트캠프 어드미션 테스트까지 후기 (0) | 2021.06.07 |
---|---|
리트코드(LeetCode): 104. Maximum Depth of Binary Tree (0) | 2021.05.06 |
치욕스런 날코딩, 정규표현식 배워야겠다는 다짐 (0) | 2021.03.01 |
레벨 1 문제에서 찾은 작은 교훈 (0) | 2021.03.01 |
프로그래머스 | level 1 | python | 3진법 뒤집기 (0) | 2021.03.01 |