728x90
https://programmers.co.kr/learn/courses/30/lessons/77484#fn1
문제
순위 | 당첨 내용 |
1 | 6개 번호가 모두 일치 |
2 | 5개 번호가 일치 |
3 | 4개 번호가 일치 |
4 | 3개 번호가 일치 |
5 | 2개 번호가 일치 |
6(낙첨) | 그 외 |
input: 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums
output: 당첨 가능한 최고 순위와 최저 순위를 차례대로 담은 배열
코드
처음에 작성한 내 코드
def solution(lottos, win_nums):
rules = {6:1, 5:2, 4:3, 3:4, 2:5}
answer = []
num = 0
for w in win_nums:
if w in lottos:
num += 1
zeros = lottos.count(0)
if num+zeros in rules:
answer.append(rules[num+zeros])
else:
answer.append(6)
if num in rules:
answer.append(rules[num])
else:
answer.append(6)
return answer
그냥 생각나는데로 작성했는데... 다른 사람들의 풀이를 보니 놀라웠다.
감명받아서 다시 작성해본 코드
def solution(lottos, win_nums):
rules=[6,6,5,4,3,2,1]
answer = []
num = len(set(lottos) & set(win_nums))
zeros = lottos.count(0)
answer = [rules[num+zeros], rules[num]]
return answer
728x90
반응형
'Algorithm' 카테고리의 다른 글
[백준] 10845번: 큐 -파이썬 (1) | 2022.01.11 |
---|---|
[백준] 14226번: 이모티콘 - 파이썬 (0) | 2022.01.10 |
[백준] 2630번: 색종이 만들기 (재귀) (0) | 2021.02.24 |
부분집합(MS 인터뷰, DFS:완전탐색) (0) | 2021.02.05 |
영지 선택(2차원 배열 구간합, DP) (0) | 2021.02.03 |