[프로그래머스] 코딩테스트 연습 - 18

krkorklo·2022년 1월 29일
0

프로그래머스

목록 보기
18/78

level 1 - 로또의 최고 순위와 최저 순위

구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.

입출력 예시
lottos : [44, 1, 0, 0, 31, 25]
win_nums : [31, 10, 45, 1, 6, 19]
-> [3, 5]

function solution(lottos, win_nums) {
    var answer = [];
    var score = [6, 5, 4, 3, 2, 1];
    var count = 0;
    var zero_count = 0;
    
    lottos.forEach((l) => {
        if (l == 0) zero_count++;
        else {
            var idx = win_nums.indexOf(l);
            if (idx != -1)  {
                count += 1;
                win_nums[idx] = 0;
            }
        }
    })
    
    var min = count <= 1 ? 1 : count;
    var max = count + zero_count <= 1 ? 1 : count + zero_count;
    
    return answer = [score[max - 1], score[min - 1]];
}


일단 풀긴 풀었다...

다른 풀이 보니까 includes랑 filter 사용해서 또 되게 간단하게 풀었더라

😭

0개의 댓글