문제풀이/프로그래머스

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

얄루몬 2021. 10. 12. 19:59

<오답>

def solution(lottos, win_nums):
    answer = []
    
    lottos.sort()
    win_nums.sort()
    cnt = 7
    zero = maxrank = minrank = 0
    
    for i in lottos:
        if i in win_nums:
            cnt -= 1
        elif i == 0:
            zero += 1
    if zero == 6:
        maxrank = 1
    else:
        maxrank = cnt-zero
    if zero == 6:
        minrank = 6
    else:
        minrank = cnt
    
    answer.append(maxrank)
    answer.append(minrank)
    return answer

# 1개의 테스트 케이스 빼고 성공했다. 어디가 잘못된 걸까. 

 

 

<정답>

def solution(lottos, win_nums):
    answer = [0,0]
    
    #0,1개 맞추면 6위 2개 맞추면 5등 3개 맞추면 4등 ....
    rank = [6,6,5,4,3,2,1]
    cnt = 0
    cntz = lottos.count(0) #0의 개수를 세어 주자~

    for i in lottos:
        if i in win_nums:
            cnt += 1

    answer[0],answer[1] = rank[cnt+cntz], rank[cnt]
    
    return answer