Today.dev

[PG_77484/Python] 로또의 최고 순위와 최저 순위 본문

알고리즘/프로그래머스

[PG_77484/Python] 로또의 최고 순위와 최저 순위

otu165 2021. 6. 22. 21:48

문제

77484번: 로또의 최고 순위와 최저 순위

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

 


풀이

일치하는 번호와 모르는 번호로 최고, 최저 순위를 만든다.

1. 일치하는 번호 개수 -> 최저 당첨

2. 일치하는 번호 개수 + 모르는 번호 개수 -> 최고 당첨

 

lottos, win_nums 리스트의 원소가 전부 다르다고 해도 선택할 수 있는 번호의 범위가 33개나 된다. 번호가 부족해서 선택할 수 없는 경우는 없다. 

 

def solution(lottos, win_nums):
    # 1. 일치하는 번호 -> 최저 순위
    common = set(lottos).intersection(set(win_nums))
    lowest = len(common)

    # 2. 일치하는 번호 + 모르는 번호 -> 최고 순위
    num = lottos.count(0)
    highest = len(common) + num

    grade = [6, 6, 5, 4, 3, 2, 1]
    answer = [grade[highest], grade[lowest]]

    return answer
Comments