💜 Key Point

filter

💜 Today I Learned

[코드카타]

  • 로또의 최고 순위와 최저 순위
    먼저 당첨 로또와 민우의 로또 번호를 반복하며 숫자가 동일한 숫자의 갯수를 확인한다.
    맞은 갯수가 2개 이상일 경우 rank에서 1씩 빼서 순위를 올린다. 이 값이 최저 순위가 된다.
    그 다음 filter를 이용하여 0을 구하고 그 갯수만큼 최저 순위에서 빼서 순위를 올린다. 이 값이 최고 순위가 되는데 만약 0이 되면 모두 맞는 것으로 1로 저장해준다.
    나는 최저, 최고 순위를 따로 구했지만 다른 분의 답을 보았을 때 순위를 객체로 생성하여 해당하는 것을 찾아서 한 번에 구할 수 있도록 하였다.
    function solution(lottos, win_nums) {
        // 1등 6개 / 2등 5개 / 3등 4개 / 4등 3개 / 5등 2개 / 그 외 낙첨
        const rank = {
            6 : 1,
            5 : 2,
            4 : 3,
            3 : 4,
            2 : 5,
            1 : 6,
            0 : 6
        }
        let check = 0;
        for(let i = 0; i < win_nums.length; i++){
            if(lottos[i] !== 0){
                if(win_nums.includes(lottos[i])) check++;
            }else continue;
        }
        let answer = [rank[check + lottos.filter(v => v === 0).length], rank[check]];
        return answer;
    }

0개의 댓글