링크
프로그래머스 2021 Dev Matching 로또의 최고 순위와 최저 순위
그냥 단순히 조건에 맞춰 구현만 하면 되는 문제였다.
딕셔너리에 당첨번호를 key값으로, value를 1로 넣어준다.
내 번호를 하나씩 꺼내서 딕셔너리에 있는 번호(당첨)이면 value를 1 더해주고
0이면 tmp에 1씩 더해준다 (무엇이든 될 수 있는 수)
그 후 딕셔너리를 .items()
로 꺼내보면서 value가 2인것의 갯수(당첨)를 최소당첨번호갯수로하고
최소 당첨번호 갯수에 0을 더해서 최대 당첨번호 갯수로 한다.
그 후 최소, 최대 당첨번호에 맞는 순위를 출력한다.
def solution(lottos, win_nums):
winning = {}
for win in win_nums:
winning[win] = 1
tmp = 0
for lotto in lottos:
if lotto == 0:
tmp += 1
else:
if winning.get(lotto) != None:
winning[lotto] += 1
min_match = 0
for win_num, match in winning.items():
if match == 2:
min_match += 1
max_match = min_match + tmp
ans = [6, 6]
for i in range(2, 7):
if min_match == i:
ans[1] = 7 - i
if max_match == i:
ans[0] = 7 - i
return ans