본문으로 바로가기

문제

링크

풀이

level 1인 만큼 쉽게 풀 수 있는 문제

당첨 번호와 내가 구매해서 알고 있는 번호를 비교해서 얻은 값(=A)이 최저 순위가 되고

그리고 내가 구매했지만 모르고 있는 번호는 당첨 번호로 바꾸어 주면 최고 순위를 알 수 있다

0은 조커 카드, 깍두기 느낌이기 때문에 그 자체로 당첨 번호로 취급하자

최저 순위 : A 개수

최고 순위 : A 개수 + 0의 개수

코드

    function solution(lottos, win_nums) {
        var answer = [];
        let unknown = 0;
        let cnt = 0;

        while(lottos.length){
            const current = lottos.shift();
            matching(current);
        }

        answer.push(getRank(unknown+cnt));

        answer.push(getRank(cnt));

        return answer;

        function getRank(number){
            if(number===6) return 1;
            if(number===5) return 2;
            if(number===4) return 3;
            if(number===3) return 4;
            if(number===2) return 5;
            return 6;

        }
        function matching(number){
            if(number===0) {
                unknown++;
                return;
            }
            if(win_nums.includes(number)){
                cnt++;
            }
        }
    }

리팩토링...?

getRank 함수는 굳이 if문을 쓸 필요가 없었다

        function getRank(number){
            const rank = [6,6,5,4,3,2,1];
            return rank[number];
        }

'Algorithm > 문제' 카테고리의 다른 글

programmers. 약수의 개수와 덧셈  (0) 2021.06.14
programmers. 음양 더하기  (0) 2021.06.13
baekjoon. 생태학  (0) 2021.06.08
baekjoon. 절댓값 힙  (0) 2021.06.05
baekjoon. 최대 힙  (0) 2021.06.04