개발/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 해줌
반응형