[Lv1]로또의 최고 순위와 최저 순위

HeeJin.log·2021년 7월 10일
0

코딩 테스트

목록 보기
6/10
post-thumbnail

0.문제설명

내가 찍은 로또 array(lottos) 와 당첨번호 array(win_nums)가 주어질 때 받을 수 있는 최고,최저순위를 출력하기. lottos의 0은 win_nums와 같아질 수도 달라질 수도 있다.

1.문제풀이

[최고순위] lottos 와 win_nums가 일치하는 개수를 출력하고 0의 개수도 더한다.
[최저순위] lottos 와 win_nums가 일칠하는 개수 출력한다.
순위 당첨 내용
1 6개 번호가 모두 일치
2 5개 번호가 일치
3 4개 번호가 일치
4 3개 번호가 일치
5 2개 번호가 일치
6(낙첨) 그 외
위 표에 따라 순위를 출력한다.

2.코드

function solution(lottos, win_nums) {
    let max = lottos.filter(x=>win_nums.includes(x)).length+lottos.filter(x=> x===0).length;
    let min = lottos.filter(x=>win_nums.includes(x)).length;
    function handleWin(n){
        if(n===6){
            return 1;
        }else if(n===5){
            return 2;
        }else if(n===4){
            return 3;
        }else if(n===3){
            return 4;
        }else if(n===2){
            return 5;
        }else {
            return 6;
        }
    }
    return  [handleWin(max),handleWin(min)];
}

3.후기

0의 사용을 잘 이해하고 filter를 적절히 이용하면 어렵지 않게 풀 수 있다.

0개의 댓글