본문 바로가기
👩🏻‍💻 Front-end/👾 Algorithm

프로그래머스 - 로또의 최고 순위와 최저 순위 (Python)

by su-no 2022. 6. 6.

문제

lottos: 민우가 구매한 로또 번호를 담은 배열, 알아볼 수 없는 숫자는 0으로 표기
win_nums: 당첨 번호를 담은 배열
이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성하라.

 

코드

def solution(lottos, win_nums):
    answer = []
    
    rank=[6,6,5,4,3,2,1] #1
    
    cnt_0=0
    for i in lottos: #2
        if i==0:
            cnt_0+=1
    
    cnt_win=0
    for i in lottos: #3
        if i in win_nums:
            cnt_win+=1
    
    answer=[rank[cnt_win+cnt_0],rank[cnt_win]] #4
    return answer

 

풀이

#1: 당첨번호와 일치하는 숫자의 갯수를 기준으로 rank[0]~rank[6] 등수를 담은 배열을 생성한다.

#2: 구매한 번호에 0 (알아볼 수 없는 숫자)의 개수를 카운트하여 cnt_0 변수에 저장한다.

#3: 구매한 번호 중 당첨번호를 카운트하여 cnt_win 변수에 저장한다.

#4: 0이 당첨번호와 모두 일치할 경우 최고 순위가 되고, 0이 당첨번호와 모두 일치하지 않을 경우 최저 순위가 된다.