# 1. 6개의 숫자 중 알아볼 수 없는 번호 0
# 2. 일치 번호에 따라서 등수 결정
# 3. 6개 번호(1등) 5개번호 (2등) .. 0개번호 (6등)
# 4. 당첨 가능한 최고순위/ 최저순위를 배열 담아서 리턴
def rank(cnt):
if cnt==6:
return 1
elif cnt==5:
return 2
elif cnt==4:
return 3
elif cnt==3:
return 4
elif cnt==2:
return 5
elif cnt==1:
return 6
elif cnt==0:
return 6
def solution(lottos, win_nums):
answer = []
success_cnt=0
unknown_cnt=0
cnt=[]
for num in lottos:
if num in win_nums:
success_cnt+=1 # 로또 번호가 맞을 시, success_cnt 증가
if num==0:
unknown_cnt+=1 # 로또 번호가 0일시, unknown_cnt 증가
print(success_cnt) #맞출 수 있는 최소 값
print(unknown_cnt+success_cnt) # 맞출 수 있는 최대 값
answer.append(rank(success_cnt+unknown_cnt))
answer.append(rank(success_cnt))
return answer
빠른 풀이
def solution(lottos, win_nums):
rank=[6,6,5,4,3,2,1]
cnt_0 = lottos.count(0)
ans = 0
for x in win_nums:
if x in lottos:
ans += 1
return rank[cnt_0 + ans],rank[ans]
https://programmers.co.kr/learn/courses/30/lessons/77484