본문 바로가기

프로그래머스

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

문제 예시와 같습니다.

입출력 예 #2
알아볼 수 없는 번호들이 아래와 같았다면, 1등과 6등에 당첨될 수 있습니다.

당첨 번호209345435결과

최고 순위 번호 0→20 0→9 0→3 0→45 0→4 0→35 6개 번호 일치, 1등
최저 순위 번호 0→21 0→22 0→23 0→24 0→25 0→26 0개 번호 일치, 6등

입출력 예 #3
민우가 구매한 로또의 번호와 당첨 번호가 모두 일치하므로, 최고 순위와 최저 순위는 모두 1등입니다.


  1. 실제로 사용되는 로또 순위의 결정 방식과는 약간 다르지만, 이 문제에서는 지문에 명시된 대로 로또 순위를 결정하도록 합니다.  
 

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

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

programmers.co.kr

 

 

def solution(lottos, win_nums):
  scored = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6}
  answer = []
  count = 0
  zero = 0
  lottos.sort()
  win_nums.sort()
  for num in lottos:
    if num in win_nums:
      count += 1
    elif num == 0:
      zero += 1
  answer.append(scored.get(count+zero))
  answer.append(scored.get(count))
  
  return answer