회고
문제풀이
https://school.programmers.co.kr/learn/courses/30/lessons/77484
def solution(lottos, win_nums):
win = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6}
answer = []
c = set(lottos).intersection(set(win_nums))
min = win[len(c)]
max = win[len(c) + lottos.count(0)]
answer.append(max)
answer.append(min)
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]
lottos = [44, 1, 3, 2, 31, 25]
win_nums = [31, 10, 45, 1, 6, 19]
result = solution(lottos, win_nums)
print(result)
set의 intersection()을 이용해서 교집합을 구했다. 두개에 모두 해당하는 번호가 있다면, 그 번호 리스트의 갯수가 최악의 당첨되는 경우가 될 것이다.
그리고 0은 어떤 수든 될수 있기 때문에 모두 당첨번호가 되 었을 경우가 가장 최고의 경우의 수가 되고, 그러므로 리스트내의 0의 갯수에 교집합의 갯수를 더한 수가 최고의 당첨 경우가 된다.