Programmers

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

Hoo_Dev 2023. 1. 25. 11:38
def solution(lottos, win_nums):
    answer = []
    rank = {6:1, 5:2, 4:3, 3:4, 2:5}
    
    comp_lst = [0, 0]
    for i in lottos:
        if i == 0 or i in win_nums:
            comp_lst[0] += 1
        if i != 0 and i in win_nums:
            comp_lst[1] += 1

    for i in comp_lst:
        if i not in rank.keys():
            answer.append(6)
        else:
            answer.append(rank[i])

    return answer

최대로 맞춘 개수와 최소로 맞춘 개수를 비교배열에 저장한다. (최대 일 경우 0은 맞춘 개수로 생각, 최소 일 경우는 0은 틀린 개수로 생각한다.)

 

이후 맞춘 개수가 rank 딕셔너리의 키값에 존재하지 않으면 6등을 추가해 주고, 그렇지 않다면 해당 키값의 밸류 값(등수)을 넣어준다.