핵심 단계
1. 0의 갯수 / 2. 현 상태에서 당첨 번호와 일치하는 개수 구하기 / 3. 등수 반환
나의 풀이
def solution(lottos, win_nums):
answer = []
lottos.sort()
win_nums.sort()
zero=0
for lotto in lottos:
if lotto == 0:
zero+=1
n = 0
for lotto in lottos:
for ans in win_nums:
if lotto == ans:
n+=1
if (n+zero)!=0:
answer.append(7-(n+zero))
else:
answer.append(6)
if n!=0:
answer.append(7-n)
else:
answer.append(6)
return answer
추가 고려사항: 마지막에 반환할 때 값이 0이라면(0개가 일치한다면) 7을 반환하므로 따로 처리
좋은 접근방식: sorting하고 시작 - 이유: 0의 갯수에 따라 최대, 최소
다른 사람의 풀이
def solution(lottos, win_nums):
rank=[6,6,5,4,3,2,1]
cnt_0 = lottos.count(0) # lottos 안의 0의 개수를 반환
ans = 0
for x in win_nums:
if x in lottos:
ans += 1
return rank[cnt_0 + ans],rank[ans]
배울 점: 1. 깔끔한 랭킹 처리(맞힌 수에 따른 등수를 미리 매칭해둠 ex) rank[6] = 1. 6개 숫자를 맞추면 1등)
2. 그로 인한 간단한 반환
'코테 공부 > Python 문법' 카테고리의 다른 글
구현 문제: 시각, 왕실의 나이트 (0) | 2022.07.01 |
---|---|
Python: bool, list 복사, 변수 생성 (0) | 2022.06.22 |
Python set 내장 함수 (0) | 2022.06.21 |
Python 자료형: Dict, Set (0) | 2022.06.21 |
Python Dict 내장 함수 (0) | 2022.06.21 |