본문 바로가기
알고리즘/프로그래머스(Python)

[프로그래머스/Python] 로또의 최고 순위와 최저 순위

by frog 2021. 10. 4.

[프로그래머스/Python] 로또의 최고 순위와 최저 순위


문제

  • 민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.

● 소스코드

def solution(lottos, win_nums):
    answer = []
    
    zero_num = 0 		# 0의 갯수
    correct_num = 0 	# 맞춘 갯수
    
    for i in lottos:
        if i == 0:
            zero_num += 1
            continue
        elif i in win_nums != -1:
            correct_num += 1
    
    # 최대 순위 : 맞춘갯수 + 0 갯수 만큼 맞춤
    # 최소 순위 : 맞춘갯수 만큼 맞춤
    answer = [min(7-(correct_num + zero_num),6), min(7-correct_num,6)]
    
    return answer

풀이

  • 특별한 알고리즘은 없다.
  • 문제의 제한사항을 잘 참고하여 최대 순위와 최소 순위를 구하면 된다.
    • 최대 순위 : 기존 순위(알고 있는 숫자로 구한 순위) + 모르는 숫자가 모두 맞았을 때
    • 최소 순위 : 기존 순위(알고 있는 숫자로 구한 순위)

 

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

 

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

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

programmers.co.kr

댓글