[프로그래머스] 로또의 최고 순위와 최저 순위

미소·2022년 2월 8일
0
post-custom-banner

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/77484
작성 코드 링크 : https://github.com/Mirim-Study/Algorithm/pull/430/files

첫번째 코드 작성

function solution(lottos, win_nums) {
    var answer = [];
    let match_len = 0, zero_len = 0;
    match_len = lottos.filter(num => win_nums.includes(num)).length;
    zero_len = lottos.filter(num => num === 0).length;

    answer.push(match_len+zero_len > 1 ? 7-(match_len+zero_len) : 6);
    answer.push(match_len > 1 ? 7-(match_len) : 6);

    return answer;
}

풀이 방법

  1. 작성된 로또 번호(lottos)와 당첨 로또 번호(win_nums) 를 비교해서 같은 값의 개수를 구한다.
  2. 알아보기 힘든 번호 0의 개수를 구한다.
  3. 구한 두 개수의 합을 최고, 최저등수에 맞게끔 수정하여 정답 배열에 넣어준다.

TMI

처음엔 이렇게 작성했는데 아무리 봐도 보기가 불편해서 수정할 방법이 있나 생각해보다 그냥 채점 받고 3점을 받게 되었다. 다른 분들의 정답을 보며 가장 보기 쉬운 코드를 적용하여 수정해보았다.


최종 코드 작성

function solution(lottos, win_nums) {
    var answer = [];
    let min = 0, max = 0;
    min = lottos.filter(num => win_nums.includes(num)).length;
    max = lottos.filter(num => num === 0).length + min;
    
    answer.push(max > 1 ? 7-(max) : 6);
    answer.push(min > 1 ? 7-(min) : 6);
    
    return answer;
}

참고 코드


위 분 코드를 참고하였다!!

수정된 게 있나..?

보기 불편했던 + 코드를 개수 구할 때 포함하도록 수정하였다. 이것만 해도 확실히 깔끔해보인다!

profile
https://blog.areumsheep.vercel.app/ 으로 이동 중 🏃‍♀️
post-custom-banner

0개의 댓글