로또의 최고 순위와 최저 순위

발자·2023년 6월 7일
0

programmers

목록 보기
25/34
def solution(lottos, win_nums):
    # 0을 제외한 lottos => set 변환
    lottos = set(lottos)
    # 0이 없을 때에는 remove로 삭제하면 에러가 난다!
    lottos.discard(0)
    # win_nums => set 변환
    win_nums = set(win_nums)
    # 지워진 번호의 갯수
    num = len(win_nums) - len(lottos)
    # 일치하는 번호의 갯수
    min_num = 0
    for lotto in lottos:
        # 당첨 번호와 민우의 번호가 일치하면
        if lotto in win_nums:
            min_num += 1
    # 최고 순위와 최저 순위, 그 외(낙첨) 처리
    answer = [min(6, 7-(min_num + num)), min(6, 7-min_num)]
    return answer

set에 해당 값이 없을 때에 remove를 사용하면 에러가 나므로 discard를 사용해야 한다.
그 외 즉, 낙첨 처리를 할 때 주의! 0 or 1개는 낙첨이므로 min을 사용하여 처리한다.

0개의 댓글