728x90
반응형
문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/77484
풀이:
def solution(lottos, win_nums):
rank = {6 : 1, 5 : 2 , 4 : 3, 3 : 4, 2 : 5, 1 : 6, 0: 6}
win = list(set(lottos)&set(win_nums))
if lottos.count(0) == 6:
return [1 , (rank[len(win)])]
else:
return [rank[len(win)] - lottos.count(0),(rank[len(win)])]
풀이 순서
최소는 0 으로 입력들어온게 다 틀렸을때 이므로 두 개 리스트의 교집합에 등수이다 (rank[len(win)])
최대는 0 으로 입력들어온게 다 맞을때 원래 등수에서 - 0의 갯수 만큼 해주면 되는데
0 이 6 개일때는 0이 되므로 if 문으로 0이 6개 일때는 1로 박아둔다.
def solution(lottos, win_nums):
rank = {
0: 6,
1: 6,
2: 5,
3: 4,
4: 3,
5: 2,
6: 1
}
return [rank[len(set(lottos) & set(win_nums)) + lottos.count(0)], rank[len(set(lottos) & set(win_nums))]]
프로그래머스 어떤분의 풀이: 비슷한 풀이로는 이렇게 있다....
반응형
댓글