[프로그래머스 | 파이썬] 로또의 최고 순위와 최저 순위

devheyrin·2022년 6월 2일
0

codingtest

목록 보기
46/65

문제 링크

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

코드

def solution(lottos, win_nums):
    min_win_num = 0
    zero_num = 0

    for num in lottos:
        if num == 0:
            zero_num += 1
        elif num in win_nums:
            min_win_num += 1

    max_win_num = min_win_num + zero_num

    rates = [6, 6, 5, 4, 3, 2, 1]

    answer = [rates[max_win_num], rates[min_win_num]]
    return answer

풀이 설명

  1. 최저 일치 개수 구하기 : 주어진 lottos (찍은 번호) 를 확인하면서, win_nums 에 들어 있는 번호와 일치하는 번호의 개수를 구한다.
  2. 최고 순위 구하기 : 주어진 lottos 에서 0의 개수(알아볼 수 없는 번호)를 구한다. 알 수 없는 번호들이 모두 win_nums 에 있는 번호와 일치한다면 최고 순위이다. 0의 개수 + 이미 일치하는 번호의 개수를 더한다.
  3. 각 인덱스가 일치하는 번호 개수를 의미하도록 순위 리스트를 만든다. 순위 리스트[일치하는 번호 개수] 를 넣어주면 최저 순위와 최고 순위를 얻을 수 있다.
profile
개발자 헤이린

0개의 댓글