Computer Science/Algorithm
[Programmers] Level 1 - 로또의 최고 순위와 최저 순위
ddu0422
2023. 8. 3. 11:21
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
"""
1: 6개 번호 일치
2: 5개 번호 일치
3: 4개 번호 일치
4: 3개 번호 일치
5: 2개 번호 일치
6: 0,1개 번호 일치
로또에 낙서
=> 알아볼 수 없는 번호 0
== example ==
구매번호: 44, 1, 0, 0, 31, 25
당첨번호: 31, 10, 45, 1, 6, 19
최고순위: 0 -> 10, 0 -> 6: 4개번호 일치 (3등)
최저순위: 2개번호 일치 (5등)
최고 순위와 최저 순위 반환: [3, 5]
최고 순위를 구하는 경우
- 0을 모두 일치하는 번호로 생각하여 진행
최저 순위를 구하는 경우
- 0을 모두 일치하지 않는 번호로 생각하여 진행
최저 순위를 구한 후 0의 개수만큼 더하기
"""
def solution(lottos, win_nums):
prize = [-1, 6, 5, 4, 3, 2, 1, 0]
minimum = len(set(lottos) & set(win_nums))
maxmimum = min(6, minimum + lottos.count(0))
return [min(6, prize.index(maxmimum)), min(6, prize.index(minimum))]
채점 결과