[파이썬] 프로그래머스 : 로또의 최고 순위와 최저 순위 (Lv.1)

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(lottos, win_nums):
    rank = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6}
    minrank= 0
    maxrank = 0
    for i in lottos:
        if i in win_nums:
            minrank += 1
            maxrank += 1
        elif i == 0:
            maxrank += 1
    return [rank[maxrank],rank[minrank]]

i가 win_nums안에 있으면 minrank,maxrank에 둘다 += 1,

만약 i == 0이라면 maxrank에만 +=1

딕셔너리에서 해당값을 찾는다.

 

 

다른 사람 풀이

def solution(lottos, win_nums):

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

    cnt_0 = lottos.count(0)
    ans = 0
    for x in win_nums:
        if x in lottos:
            ans += 1
    return rank[cnt_0 + ans],rank[ans]

바로 0의 개수를 구하고 x가 lottos안에 있으면 ans에 +=1

rank[0의개수+ans] -> 최대 등수, rank[ans] -> 최저 등수

훨씬 깔끔한 것 같다..

 

comment