-
[Python] Programmers 로또의 최고 순위와 최저 순위알고리즘/문제풀이 2021. 8. 14. 20:13728x90
1. 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/77484
2. 문제 요약
구매한 로또에 0이 표기되어 있고, 당첨 번호가 주어진다. 당첨 가능한 최고 순위와 최저 순위를 리턴한다.
3. 아이디어 정리
- 내 로또 번호를 한 개씩 for문을 돌린다.
- 0이 아닌 경우 win_nums(당첨번호)에 들어가는지 확인한다.
- 최저 순위 관련 변수에는 0의 개수 만큼 당첨 횟수를 늘려준다.
- 로또 순위 정하는 방식에 따라 결과를 리턴한다.
4. 문제 풀이
4-1. 내 풀이
def ranking(count): """ 랭킹 정보 리턴 """ return 1 if count == 6 else 2 if count == 5 else 3 if count == 4 else 4 if count == 3 else 5 if count == 2 else 6 def solution(lottos, win_nums): answer = [0, 0] count_z = lottos.count(0) # 0의 수 win_nums = set(win_nums) # 내 로또 번호를 한 개씩 for문을 돌린다. for lotto in lottos: if lotto == 0: continue if lotto in win_nums: # 0이 아닌 경우 win_nums(당첨번호)에 들어가는지 확인한다. answer[0] += 1 answer[1] += 1 win_nums.remove(lotto) # 2. 최저 순위 관련 변수에는 0의 개수 만큼 당첨 횟수를 늘려준다. if count_z: answer[1] += count_z # 3. 로또 순위 정하는 방식에 따라 결과를 리턴한다. return (ranking(answer[1]), ranking(answer[0]))
5. 결론
- 단순한 구현 문제다.
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] 백준 21278 호석이 두 마리 치킨 (0) 2021.08.20 [Python] 백준 1956 운동 (0) 2021.08.14 [Python] 백준 17609 회문 (1) 2021.08.14 [Python] 백준 17182 우주 탐사선 (0) 2021.08.07 [Python] 백준 14719 빗물 (0) 2021.08.07 - 내 로또 번호를 한 개씩 for문을 돌린다.