로또의 최고 순위와 최저 순위

개발새발log·2021년 10월 7일
0

Programmers

목록 보기
6/35

현재 목표: 프로그래머스 레벨1 뽀개기✨


접근 방식

단순하게 생각한 그 접근방식이 정답이였음👀 수월하게 풀었던 거 같다.
1. 최저 일치 수 = 0을 제외한 숫자 중 lottos와 win_nums의 교집합
2. 최고 일치 수 = 최저 일치 수 + 0의 개수

최종 코드

def getRank(key):
    ranking = {6 : 1, 5 : 2, 4 : 3, 3 : 4, 2 : 5}.get(key, 6)
    return ranking

def solution(lottos, win_nums):
    _lottos = set(lottos)
    _win_nums = set(win_nums)
    
    min = len(_lottos & _win_nums)
    max = min+lottos.count(0)
    
    ranks = [getRank(max), getRank(min)]
    
    return ranks

✅ 풀면서 새로 알게 된 파이썬 지식

  1. switch 대신 dictionary를 활용할 수 있다!!
    C++과 Java에 더 익숙해서 switch문 같은 애 없나~ 하고 찾아봤는데 dictionary에서 get(key, default)를 활용해 비슷하게 구현할 수 있었다! 👀

  2. 리스트에서 특정 요소를 count하는 건 리스트.count(해당 요소)

profile
⚠️ 주인장의 머릿속을 닮아 두서 없음 주의 ⚠️

0개의 댓글