코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또에 낙서를 해서 일부 번호가 지워졌다. 이 로또의 최고 순위와 최저 순위를 구하라.
무슨 숫자인지 상관없이 맞은 개수로 등수를 판별하므로 개수만 생각하여 코드를 짰다.
def solution(lottos, win_nums):
best_nums = 0
worst_nums = 0
nums = 0
zeros = lottos.count(0)
for i in lottos:
if i in win_nums:
nums += 1
best_nums = nums + zeros
worst_nums = nums
best = {6:1, 5:2, 4:3, 3:4, 2:5}.get(best_nums, 6)
worst = {6:1, 5:2, 4:3, 3:4, 2:5}.get(worst_nums, 6)
result = [best, worst]
return result
당첨등수는 1등부터 6등까지밖에 없고 계산이 간단하기 때문에 굳이 dictionary로 매칭시키지 않아도 되는 것이였다.
def solution(lottos, win_nums):
rank=[6,6,5,4,3,2,1]
cnt_0 = lottos.count(0)
ans = 0
for x in win_nums:
if x in lottos:
ans += 1
return rank[cnt_0 + ans],rank[ans]