DHistory

[Programmers] Level 1 - 로또의 최고 순위와 최저 순위 본문

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))]

 

채점 결과