로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다.
알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.
반복문을 사용하여 원소의 값이 일치하는지 비교
알아볼 수 없는 번호를 0으로 표기
0의 갯수가 최대 순위와 최저 순위를 결정 > 일치하는 갯수가 최소 일치 갯수, 0의 갯수를 더하면 최대 일치 갯수
def solution(lottos, win_nums):
dic= {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6}
result= []
max_sub_zero= lottos.count(0)
lottos.sort(reverse=True)
win_nums.sort(reverse=True)
count= 0
for num in lottos:
if num == 0:
break
for win_num in win_nums:
if num == win_num:
count+= 1
win_nums.remove(win_num)
return [dic[count + max_sub_zero], dic[count]]
리스트의 첫번째, 두번째 인덱스가 0,1 임을 이용
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]
return 반환값의 형태
특정원소 갯수를 찾는 count()함수