[파이썬]프로그래머스 2021 Dev Matching 로또의 최고 순위와 최저 순위

Byeonghyeon Kim·2021년 5월 4일
0

알고리즘문제

목록 보기
71/93
post-thumbnail

링크

프로그래머스 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

알게된 것👨‍💻

  • 딕셔너리를 잘 쓰자
profile
자기 주도 개발전 (개발, 발전)

0개의 댓글