본문 바로가기
알고리즘 스터디/[프로그래머스] 월간 코드 챌린지 시즌1

[알고리즘] 로또의 최고 순위와 최저 순위 문제풀이(자바스크립트 javascript)

by 제니운 2022. 7. 20.
728x90

 

(풀기전에 알아두어야 할 것)

 

1. filter 함수 : 조건만큼 걸러주는 함수

 

👌 lotto와 win_nums가 일치했던 것부터 걸러주기 위해

 

const correct = lottos.filter(lotto => win_nums.includes(lotto)).length

 

맞춘 개수를 구해야 하기 때문에 length로 길이를 구해준다.

 

👌 0으로 되어 있는 길이는 빼고 구해야하기 때문에

 

const zero == lotto.filter(lotto => lotto ===0).length

 

👌 최저 순위 : 일치한 것이 0개이거나 1개여야 한다

 

let min = 7-correct >= 6? 6: 7-correct

 

맞은 correct가 0이나, 1이면 7-0은 7, 7-1은 6으로 6순위 낙첨을 구해줄 수 있고 아니라면 7-correct 순위를 가지고 오면 된다.

 

👌 최고 순위 : 맞춘 갯수에서 0의 갯수를 뺏는데, 0의 갯수가 없이 다 맞췄다면 0이 나올것이다

 

let max = min - zeros < 1? 1 : min-zeros

 

 

✅ 최종 코드

 

function solution(lottos, win_nums) {
    var answer = [];
    
    const correct = lottos.filter(lotto => win_nums.includes(lotto)).length;
    
    const zeros = lottos.filter(lotto => lotto === 0).length;
    console.log(correct, zeros);
    
    let min = 7-correct >= 6 ? 6 : 7-correct;
    let max = min-zeros < 1 ? 1 : min-zeros;
    
    answer = [max, min]
    return answer;
    
}
728x90