2021 Dev-Matching: 웹 백엔드 개발자(상반기) : 로또의 최고 순위와 최저 순위 - python3 풀이

문제 보러 가기 👈 클릭!

💡 풀이

문제 파악

  • 알아볼 수 없는 숫자는 0 으로 표시 된 길이가 6인 숫자배열(lottos), 길이가 6인 로또당첨번호(win_nums)가 주어졌을때, 당첨 가능한 [최고 순위, 최저 순위]을 return하는 문제

풀이 방법

  • 당첨 가능한 최고 순위
    = 알아볼 수 없는 숫자 모두 로또당첨번호와 일치한다고 가정
    = lottos중 win_num과 일치하는 숫자의 개수 + lottos중 0의 개수

  • 당첨 가능한 최저 순위
    = 알아볼 수 없는 숫자 모두 로또당첨번호와 일치하지 않는다고 가정
    = lottos중 win_num과 일치하는 숫자의 개수

  • 순위를 매기는 방법
    lottos중 로또당첨번호와 일치하는 개수가 0,1,2,3,4,5,6개 일때 순위는 6등,6등,5등,4등,3등,2등,1등 입니다. 일치하는 개수를 인덱스, 순위를 값으로 갖는 리스트를 선언합니다.

   ex) rank = [6, 6, 5, 4, 3, 2, 1]

💡 전체 소스 코드

def solution(lottos, win_nums):
    
    rank = [6, 6, 5, 4, 3, 2, 1]  # rank[일치하는 번호 개수] = 순위
    win_cnt = 0      #일치하는 번호 개수 
    zero_cnt = 0     #알아볼 수 없는 번호 개수
        
    for num in lottos:
        if num in win_nums:
            win_cnt += 1
        elif num == 0:
            zero_cnt += 1
            
    answer = [rank[win_cnt + zero_cnt], rank[win_cnt]]
        
    return answer

좋은 웹페이지 즐겨찾기