😎코딩테스트 연습>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)))으로 구했는데
스터디를 통해 &로 교집합을 구하는 방법을 알게 되었다.