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

2021. 6. 22. 16:47Front-end/알고리즘

728x90
반응형

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/77484

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

function solution(lottos, win_nums) {
  let winNumber = 0; // 당첨 개수
  let zeroNumber = 0; // 0의 개수
  const answer = [];
  for (let i = 0; i < lottos.length; i++) {
    if (lottos[i] === 0) {
      zeroNumber++;
    } else {
      for (let j = 0; j < win_nums.length; j++) {
        if (lottos[i] === win_nums[j]) {
          winNumber++;
        }
      }
    }
  }
  const maxWinNumber = winNumber + zeroNumber;
  const minWinNumber = winNumber;
  let maxRank;
  let minRank;

  switch (maxWinNumber) {
    case 0:
      maxRank = 6;
      break;
    case 1:
      maxRank = 6;
      break;
    case 2:
      maxRank = 5;
      break;
    case 3:
      maxRank = 4;
      break;
    case 4:
      maxRank = 3;
      break;
    case 5:
      maxRank = 2;
      break;
    case 6:
      maxRank = 1;
      break;
  }
  switch (minWinNumber) {
    case 0:
      minRank = 6;
      break;
    case 1:
      minRank = 6;
      break;
    case 2:
      minRank = 5;
      break;
    case 3:
      minRank = 4;
      break;
    case 4:
      minRank = 3;
      break;
    case 5:
      minRank = 2;
      break;
    case 6:
      minRank = 1;
      break;
  }
  answer[0] = maxRank;
  answer[1] = minRank;
  return answer;
}
728x90
반응형