문제는 이곳을 참조하길 바란다.
def solution(lottos, win_nums):
lottos.sort(reverse=True)
win_nums.sort(reverse=True)
mx = 6
mn = 6
temp = 0
for i in range(len(lottos)):
if lottos[i] == 0:
temp += 1
if temp >= 2:
mx -= 1
elif lottos[i] in win_nums:
temp += 1
if temp >= 2:
mx -= 1
mn -= 1
answer = [mx,mn]
return answer
쉬운 문제인데 이상하게 문제를 길게 만들고 조금 억지로 난이도를 있게 하고 싶어한 것 같은 느낌을 받은 문제이다.
문제 자체의 해결법은 상당히 간단하다. lottos 리스트와 win_nums 리스트를 내림차순으로 정렬하고 먼저 결과를 받을 최고등수 mx, 최소등수 mx, 2개 이상 맞춰야 등수에 카운트가 들어가므로 그 것을 조정해줄 temp하는 변수를 선언하고 len(lottos)를 중심으로 for문을 돌리며 lottos의 원소가 0일때는 temp에 +1을 하고 만약 숫자를 2개이상 맞춘거라면 최고등수 mx에만 등수를 올리기위한 -1을 해준다.
lottos의 원소가 0이 아니고 win_nums에 포함될때 temp에 +1을 하고 만약 숫자를 2개이상 맞춘거라면 최고등수 mx와 mx에 등수를 올리기 위해 각각 -1을 해준다.