개발/PS

프로그래머스 Lv1 로또의 최고 순위와 최저 순위 (파이썬)

유훈 | Yuhun 2021. 12. 30. 16:05
반응형

풀이

def solution(lottos, win_nums):
    answer = []
    match_num = 0
    max_rank = 0
    min_rank = 0
    pre_value = 0

    for lot in lottos:
        if lot == 0:
            pre_value += 1
        else:
            for win in win_nums:
                if lot == win:
                    match_num += 1

    min_rank = match_num
    max_rank = min_rank + pre_value

    ranking = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5}
    max_rank = ranking.get(max_rank, 6)
    min_rank = ranking.get(min_rank, 6)

    answer.append(max_rank)
    answer.append(min_rank)

    return answer

최저 순위와 최고 순위를 구해 answer list에 추가해 주었어요.

 

1. 0을 제외한 나머지 수 중에 win_nums와 매칭되는 값의 개수를 min_rank에 담아줌.

2. min_rank와 0(마음대로 변할 수 있는 값)의 수를 더해 max_rank에 넣어줌

3. 맞춘 수에 따라 ranking dictionary에서 등수를 뽑아옴 get을 이용했고 두번재 파라미터는 racking에 값이 없을 때 기본값

4. max와 min을 순서대로 answer에  append 해줌

 

반응형