728x90
반응형
문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/77484
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이:
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))]]
프로그래머스 어떤분의 풀이: 비슷한 풀이로는 이렇게 있다....
반응형
댓글