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

김현민·2021년 9월 17일
0

Algorithm

목록 보기
85/126
post-thumbnail

내 코드

function result(input) {
  switch (input) {
    case 6:
      return 1
    case 5:
      return 2
    case 4:
      return 3
    case 3:
      return 4
    case 2:
      return 5

    default:
      return 6
  }
}

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

  win_nums.sort((a, b) => a - b)
  lottos.sort((a, b) => a - b)

  let cntSame = 0
  let cnt0 = 0

  lottos.map((v) => {
    win_nums.map((item) => {
      if (v === item) {
        cntSame++
      }
    })
    if (v === 0) cnt0++
  })

  //   최고점수 = cntSame + cnt0
  //   최저점수 = cntSame
  const input = cntSame + cnt0

  const best = result(input)

  const worst = result(cntSame)

  answer.push(best)
  answer.push(worst)

  return answer
}

solution([45, 4, 35, 20, 3, 9], [20, 9, 3, 45, 4, 35])
  1. 로또번호 2개 모두 sort()
  2. 로또번호가 같은 것들을 cntSame++
  3. 0(지워진 숫자)을 cnt0++
  4. 최저순위는 cntSame의 수, 최고순위는 0의 갯수까지 더한 수 (cnt0 + cntSame)가 된다.
    ( 0이 모두 win_nums의 요소가 된다고 가정하면 최고순위가 되니까 )
profile
Jr. FE Dev

0개의 댓글