프로그래머스 JS - 로또의 최고 순위와 최저 순위

joon·2022년 4월 7일
0

알고리즘

목록 보기
2/2

📃 로또의 최고 순위와 최저 순위

2021 Dev-Matching: 웹 백엔드 개발자
로또의 최고 순위와 최저 순위

✔ 입력값

  • lottos: 민우의 로또 번호, 동생의 낙서로 지워진 숫자는 0 처리
  • win_nums: 로또 1등 번호

✔ 출력값

  • 낙서로 지워진 값을 최고 순위와 최저 순위로 계산한 당첨순위 배열

✔ 풀이과정

includes 메서드를 이용해 민우의 번호가 1등 번호와 일치 하는 번호를 max와 min으로 카운트 해주었습니다.

그리고 지워진 0번은 다 맞추었을때와 다 맞추지 못하였을때를 카운트해서 추가해주었습니다.

마지막으로 rank 배열을 만들어 max와 min의 당첨 순위를 찾아가도록 구현했습니다.

✔ 풀이

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

  let max = 0;
  let min = 0;

  for (let i = 0; i < lottos.length; i++) {
    if (lottos.includes(win_nums[i])) {
      max++;
      min++;
    }
    if (lottos[i] === 0) {
      max++;
    }
  }

  return console.log(rank[max], rank[min]);
}

solution([44, 1, 0, 0, 31, 25], [31, 10, 45, 1, 6, 19]);

✔ 코드 라인별 풀이

로또의 번호는 다 틀려도 6등이며 1개만 맞춰도 6등입니다. 그리고 max, min를 이용해 rank에서 당첨 번번호 숫자대로 움직여야합니다. 배열은 0부터 시작 하기때문에 6을 두개 적어주었습니다.

  const rank = [6, 6, 5, 4, 3, 2, 1];

lottos의 번호가 당첨번호에 포함 되어있는지를 확인하고 맞다면 max, min 카운트 합니다.
0번은 다 틀렸다면 카운트가 필요 없기때문에 max만 카운트해주었습니다.

  for (let i = 0; i < lottos.length; i++) {
    if (lottos.includes(win_nums[i])) {
      max++;
      min++;
    }
    if (lottos[i] === 0) {
      max++;
    }
  }

0개의 댓글