[프로그래머스] 로또의 최고 순위와 최저 순위Lv.1
나의 풀이
def solution(lottos, win_nums):
rank = [6, 6, 5, 4, 3, 2, 1]
match_num = 0
for i in range(len(lottos)):
if lottos[i] in win_nums:
match_num += 1
low = match_num
high = match_num + lottos.count(0)
return [rank[high], rank[low]]
- 맞는 숫자가 1개 이하일 경우 6등, 2개 - 5등, 3개 - 4등, 4개 - 3등, 5개 - 2등, 6개 - 1등 이런 식으로 로또의 순위가 매겨져있다.
- 점수의 범위는 0 - 6 총 7개의 숫자가 나올 수 있다.
- 0과 1은 모두 6점 처리이기 때문에, 리스트에 6을 두개 추가하였다.
- 그다음 로또의 숫자와 당첨 번호의 숫자가 같으면 match_num 변수에 1을 더해준다.
- 최저 순위는 일치하는 숫자의 개수, 최고 순위는 일치하는 숫자의 개수 + 0의 개수를 더해준다.
- 그리고 각 점수에 맞는 순위를 리스트로 반환한다.