-
[Algorithm - 프로그래머스] Python 로또의 최고 순위와 최저 순위Programming/Algorithm 2021. 10. 19. 14:30
문제 (LV.1)
https://programmers.co.kr/learn/courses/30/lessons/77484
코드
def solution(lottos, win_nums): answer = [0, 0] rank = [6, 6, 5, 4, 3, 2, 1] ans = 0 zero_cnt = lottos.count(0) for i in win_nums: if i in lottos: ans += 1 answer[0] = rank[ans + zero_cnt] answer[1] = rank[ans] return answer
해설
접근 자체는 어렵지 않은 문제였다.
내가 가지고 있는 로또 리스트와 당첨번호 리스트 공통인자의 갯수를 찾으면 그 갯수가 맞출 수 있는 최소값이 된다.
이 후에 lottos 리스트에서 0의 갯수를 세어 공통인자 갯수에 더해주면 맞출 수 있는 최대값이 된다.
접근 자체는 어렵지 않지만 등수를 구하는 로직에서는 아주 조금 생각이 필요할 수 있다.
처음에는 7 - (zero_cnt + ans)로 등수를 구현하려 했는데, 그렇게 되면 조건별로 코드를 다르게 구성해야 하기 때문에, rank 리스트를 참고하여 등수 구하기를 구현하였다.
'Programming > Algorithm' 카테고리의 다른 글
[Algorithm - 프로그래머스] Python 숫자 문자열과 영단어 (0) 2021.10.21 [Algorithm - 프로그래머스] Python 신규 아이디 추천 (0) 2021.10.20 [Algorithm] Python 1부터 n까지의 합 (0) 2021.09.23 [Algorithm] Python 강남역 폭우 (0) 2021.09.22 [Algorithm] 순열 (0) 2020.04.24