프로그래머스 | 로또의 최고순위와 최저순위_JS

난이도 : Level. 1
언어 : Javascript
출제 내역 : 2021 Dev-Matching

❓ Question

로또 번호 중 지워진 번호가 있다.
이 번호를 모르는 상태에서 최고 순위와 최저 순위를 계산해보자.

📝 My Solution

전체 풀이 코드 👈🏻 클릭시 Github로 이동

function solution(lottos, win_nums) {
  let answer = [];
  return answer
}

lottos 라는 인자에는 내가 들고 있는 로또의 번호가
win_nums 에는 당첨 번호가 들어오게 된다.
answer 에는 최소 등수와 최대 등수가 들어오는 배열입니다.

 for (let i = 0; i<lottos.length; i++;) {
      if (win_nums.indexOf(lottos[i]) >= 0) {
        accordNum += 1
      }
      if (lottos[i] === 0)  {
        count += 1
      }
    }

먼저 반복문을 통해서 당첨 번호와 내 번호가 몇 개나 일치하는지
그리고 내 번호 중 안보이는 번호는 몇개인지 (안보이는 번호는 0)
개수를 변수에 넣어둡니다.

if (accordNum === 6) {
    answer.push(1)
  } else if (accordNum === 0) {
    answer.push(6)
  } else {
    answer.push(7 - accordNum)
  }
  
  if (count === 6) {
    answer.push(1)
  } else if (count === 0) {
    if (accordNum === 6) {
      answer.push(1)
    } else if (accordNum === 0) {
      answer.push(6)  
    } else {
      answer.push(7-accordNum)
    }
  } else {
    answer.push(7-accordNum-count)
  }

이제 여기서부터는 여러가지 변수들을 처리해 줘야합니다.

  1. 안보이는 숫자가 모두 당첨 번호거나, 당첨 번호가 아닐 경우
  2. 6개의 숫자 모두가 안보이는 숫자 일 경우
  3. 6개의 숫자 모두가 보이는 숫자 일 경우
    3-1. 모두 보이지만, 일부의 번호만 당첨 된 경우

해당 변수들을 처리하는 조건문을 사용해
최소, 최대 등수를 배열에 넣어주면 됩니다.

결과

이 문제의 중요 포인트는
변수들을 어떻게 빈틈없이 처리해 주는지가 관건이라고 생각 됩니다.

좋은 웹페이지 즐겨찾기