Algorithm/프로그래머스

(파이썬) [알고리즘 문제 풀이] - 로또의 최고 순위와 최저 순위

Jesse 2021. 5. 24. 00:03

https://programmers.co.kr/learn/courses/30/lessons/77484

풀이

0은 알수 없는 번호이기 때문에 내가 필요한 숫자 일수도 있고 아닐수도 있습니다.

최고 순위는 lottos 리스트 안에 있는 0이 더 높은 순위로 당첨되기 위해 필요한 숫자라고 가정

  • 당첨 번호와 일치한 숫자의 개수 + 0의 개수

최저 순위는 lottos 리스트 안에 있는 0이 모두 당첨되지 않은 숫자들로 가정

  • 당첨 번호와 일치한 숫자의 개수

일치된 번호의 숫자가 0개이거나 1개일때는 모두 6등 

그 이후부터는 일치된 번호가 한개 증가할때마다 등수가 올라간다.

코드

def solution(lottos, win_nums):
    win = 0
    zero = 0
    rank = [6,6,5,4,3,2,1]
    
    for num in lottos:
        if num in win_nums:
            win += 1
        if num == 0:
            zero += 1
    
    best = rank[win+zero]
    worst = rank[win]
    
    return best,worst