반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/77484
2021 Dev-Matching: 웹 백엔드 개발자(상반기)에 기출 된 문제이다
코드
1
2
3
4
5
6
7
8
9
10
|
def solution(lottos, win_nums):
answer = []
winner = [6, 6, 5, 4, 3, 2, 1]
low = len(list(set(lottos).intersection(win_nums)))
high = low + lottos.count(0)
answer.append(winner[high])
answer.append(winner[low])
return answer
|
cs |
winner라는 리스트를 만들어주엇다.
맞춘 숫자가 0개일 때 6등, 1개일 때 6등, 2개일 때 5등, 3개일 때 4등...
최종적으로 맞춘 갯수에 따라 등수를 매겨주기 위해 만든 리스트이다.
다음으로 set의 intersection 함수를 통해서 두 리스트의 교집합을 찾아준다.
즉, 최소 맞춘 갯수가 된다. (low 변수)
로또 특성상 중복 숫자를 뽑을 수 없기 때문에 set함수 사용이 가능하다.
그리고 0으로 마킹된 숫자의 경우 맞췄다고 가정할 수 있기 때문에 최대로는
0의 갯수만큼을 low에서 더해주면 된다.
그리고 각각 winner에서 등수를 찾아 리턴하면 된다.
아주 간단한 문제이다.
다른 사람의 풀이를 보았을 때 크게 차이가 없는 코드였다. (winner 변수 사용한 것은 잘한 듯.)
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 체육복 파이썬 풀이 - Greedy(탐욕법) 알고리즘 (0) | 2022.05.31 |
---|---|
[프로그래머스][2022 카카오 블라인드] K진수에서 소수 개수 구하기 (0) | 2022.04.29 |
[프로그래머스][2022 카카오 블라인드 테스트] 신고 결과 받기 - 파이썬 풀이 (0) | 2022.04.26 |
[프로그래머스] 가장 큰 수(level 2) 파이썬 문제 풀이 (2) | 2021.08.27 |
[프로그래머스] 모의고사(level 1) 파이썬 문제 풀이 (0) | 2021.08.23 |
댓글