본문 바로가기
Coding Test/JavaScript

[Javascript] (프로그래머스 level 1) 로또의 최고 순위와 최저 순위

by Chaedie 2022. 7. 6.
728x90

[Javascript] (프로그래머스 level 1) 로또의 최고 순위와 최저 순위

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

function solution(lottos, win_nums) {
    // 배열 두개 비교해서 같은 넘버인놈 갯수 카운트,
    // 최저는 카운트 등수
    // 최고는 카운트 + 0의 갯수 등수
    let zeros = lottos.filter((x) => x === 0).length;

    let count = 0;
    for (let winNum of win_nums) {
        for (let pickNum of lottos) {
            if (pickNum === winNum) {
                count++;
            }
        }
    }

    let result = [6, 6, 5, 4, 3, 2, 1];
    return [result[count + zeros], result[count]]
}
  • 다른 사람 풀이

function solution(lottos, win_nums) {
    const rank = [6, 6, 5, 4, 3, 2, 1];

    let minCount = lottos.filter(v => win_nums.includes(v)).length;
    let zeroCount = lottos.filter(v => !v).length;

    const maxCount = minCount + zeroCount;

    return [rank[maxCount], rank[minCount]];
}
  • let zeroCount = lottos.filter(v => !v).length;
    • filter(v ⇒ !v) 로 제로 걸러내는건 좀 신기하네요

배운 점, 느낀 점

  • 성능면에선 포문 두개 돌리는게 조금 더 빠를것 같지만…
    • 가독성 면에선 includes로 걸러내는게 훨씬 좋네요.

댓글