오늘 풀어볼 문제는 로또의 최고순위와 최저 순위이다.
이 문제를 보고 든 생각은
이렇게 쉬울리가 없는데.. 그냥 구현하면 될 거 같은데.. 아닌가.. 뭔가 함정이 있나..?
하면서 괜히 의심을 했다. 근데 그냥 문제에 나온대로 풀었더니 통과됐다.
def calc_rank(count):
return 6 if count < 2 else 7 - count
def solution(lottos, win_nums):
answer = []
zero_count = 0
win_count = 0
for lotto in lottos:
if lotto in win_nums:
win_count +=1
elif lotto == 0:
zero_count += 1
min_rank = calc_rank(win_count)
max_rank = calc_rank(win_count + zero_count)
answer = [max_rank, min_rank]
return answer
결과는 통과
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]
나는 랭킹 계산을 하는 함수를 만들었는데
그냥 어차피 개수가 얼마 없으니 랭킹을 미리 계산해서 저장해두는 방법도 있었다.