코딩테스트 연습/프로그래머스

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

슈퍼짱짱 2022. 3. 16. 17:12
반응형

(파이썬으로 코딩테스트 연습하기) Programmers > 로또의 최고 순위와 최저 순위

 

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

 

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

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

programmers.co.kr

 


 

Solution

 

def score(x): # 일치하는 번호 개수 
    return 6-(max(x,1))+1 # 일치하는 번호가 0개일땐 7등이 아니라 6등

def solution(lottos, win_nums):
    i = 0 # 일치하는 번호 개수
    
    for x in lottos : 
        if x in win_nums :
            i+=1
    return [score(i+lottos.count(0)), score(i)]

 


 

일치하는 번호의 개수와 0의 개수만 알면 된다.

 

문제에 나온 예시로 설명한다.

 

 

for문으로 일치하는 번호의 개수를 센다.

 

 

일치하는 번호의 개수를 입력으로 넣어주면 몇등인지 return하는 함수를 짠다.

 

 

일치하는 번호가 0개일 때 7등이 아니라 6등이므로 max(x,1)을 해준다.

 


 

list에서 0의 개수는 list.count(0)으로 셀 수 있다.

최고순위는 0까지 모두 일치하는 경우이므로, 일치하는 번호의 개수 + 0의 개수이고

최저순위는 0은 모두 틀린 경우리므로, 일치하는 번호의 개수일 때만 등수를 계산해주면 된다.

 

반응형