개발/알고리즘(코딩테스트)

프로그래머스, 자바스크립트) 로또의 최고 순위와 최저 순위

빔네모 2024. 11. 11. 22:48

문제

https://school.programmers.co.kr/learn/courses/30/lessons/77484

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

풀이

최고 순위와 최저 순위를 알기 위해서는 두 가지 케이스를 생각하면 된다.

  • 가지고 있는 로또 번호 중 당첨 번호 + 미확인 번호가 전부 일치
  • 가지고 있는 로또 번호 중 당첨 번호 + 일치하는 번호 없음

전체 로또 번호를 돌면서 , 맞은 수를 세고 0으로 표기된 부분을 세준다.

그다음 최고, 최저를 계산해 등수로 환산한다.

function solution(lottos, win_nums) {
  let zeroCount = 0;
  let correctCount = 0;
  lottos.forEach((num) => {
    if (win_nums.includes(num)) correctCount++;
    if (num === 0) zeroCount++;
  });

  const reward = {
    6: 1,
    5: 2,
    4: 3,
    3: 4,
    2: 5,
    1: 6,
    0: 6,
  };

  return [reward[correctCount + zeroCount], reward[correctCount]];
}