[프로그래머스] - 로또의 최고 순위와 최저 순위

yewon Lee·2023년 3월 28일
0

😎코딩테스트 연습>2021 Dev-Matching: 웹 백엔드 개발자(상반기)>로또의 최고 순위와 최저 순위


📘 문제풀이

처음에는 if문을 6개 써야하나 생각하였다.
하지만 너무 번거로운 것 같아서 고민하다 배열에 순위를 넣는 방법이 떠올라서 그 방법으로 진행하였다.

def solution(lottos, win_nums):
    answer = []
    ranking = [6, 6, 5, 4, 3, 2, 1]
    zero_cnt =  lottos.count(0)
    a_cnt = len(set(win_nums) & set(win_nums))
    answer.append(ranking[zero_cnt+a_cnt])               
    answer.append(ranking[a_cnt])
    
    return answer
1. ranking에 순위 넣기 ([0,1] - 6, [2] - 5, [3] - 4 ... )
2. lottos에 있는 0의 개수 찾기(zero_cnt)
3. win_nums와 lottos의 교집합 찾기(a_cnt)
4. a_cnt는 최솟값, zero_cnt+a_cnt는 최대값이 된다.

혼자 풀 때는 한번에 교집합을 구하지 못해서
6-len(list(set(win_nums)-set(lottos)))으로 구했는데
스터디를 통해 &로 교집합을 구하는 방법을 알게 되었다.

profile
시작

0개의 댓글