문제 설명
로또 6/45(이하 “로또”라 함)는 1부터 45까지의 숫자 6개가 일치하는 대표적인 복권입니다. 다음은 복권 순위 결정 방법입니다.
순위 당첨 내역 하나 숫자 6개 모두 일치 2 숫자 5개 일치 삼 숫자 4개 일치 4 숫자 3개 일치 5 숫자 2개 일치 6 (잃어버린) 등 복권을 산 민우는 당첨번호가 발표되기를 기다렸다. 그런데 민우의 남동생이 로또에 낙서를 하고 숫자를 지웠다. 당첨 번호가 발표된 후 민우는 자신이 산 복권으로 어떤 최고 순위와 최저 순위에 당첨될 수 있었는지 알아보고 싶었습니다.
알 수 없는 숫자가 0으로 표시되고 민우가 산 6개의 복권 번호가 44, 1, 0, 0, 31, 25라고 가정해 봅시다. 6개의 당첨 번호가 31, 10, 45, 1, 6, 19인 경우 아래는 가능한 최고 및 최저 당첨 번호의 예입니다.
당첨 번호 31 10 45 하나 6 19 결과 최고 순위 번호 31 0->10 44 하나 0->6 25 숫자 4개 일치, 3승 최하위 번호 31 0->11 44 하나 0->7 25 숫자 2개 맞추기, 5등 민우가 구매한 로또번호 배열 lotto와 당첨번호 배열 win_nums가 파라미터로 주어진다. 이 시점에서 solve 함수를 완성하여 배열에서 가능한 최고 및 최저 승 순위를 정렬하고 반환합니다.
작성한 코드
def solution(lottos, win_nums):
d = {6:1,5:2, 4:3, 3:4, 2:5, 1:6, 0:6} #키:일치한 번호 개수/값:순위
zero = 0
cor = 0
for i in lottos:
if i==0: zero+=1
if i in win_nums: cor+=1
return (d(cor+zero),d(cor))
구매하신 로또번호는 당첨번호에 맞게 중복번호가 설정되며, 인식불가번호로 표기된 번호는 0으로 설정됩니다.
모든 0이 일치하는 경우가 가장 높은 순위이고 모든 0이 일치하는 경우가 가장 낮은 순위이므로 순위 테이블에서 위의 코드로 순위를 얻습니다.