본문 바로가기
문제 풀이/프로그래머스 (Programmers)

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

by 희조당 2022. 7. 1.
728x90

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

 

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

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

programmers.co.kr


 문제 풀이

0의 역할만 잘 고려하면 되는 문제이다.

주어진 두 배열에 겹치는 값의 개수가 결국 최저 순위이고,

최저 순위에서 0은 어떤 수도 될 수 있기 때문에 0의 개수만큼 더한 값이 최고 순위가 된다.

 느낀 점

처음에 7에서 맞는 숫자(hit) 빼서 랭킹을 만들려고 했는데 생각해보니 hit가 하나도 없을 때 7이 나온다...

그래서 생각한 것은 배열! 내가 생각해도 잘 생각한 것 같다 ㅎㅎ

전에 풀어봤지만 너무 오래돼서 파이썬 공부할 겸 다시 풀어봤는데 역시 파이썬은 사기다.

 코드

def solution(lottos, win_nums):
    zeros, hit = 0, 0
    ranking = [6,6,5,4,3,2,1]
    for l in lottos:
        if l in win_nums: hit+=1
        if l == 0: zeros +=1
    
    return [ranking[hit+zeros], ranking[hit]]

댓글