결국 3명만 잘 처리해주면 되므로 3명의 패턴을 잘 기록해 둔 뒤 answers 리스트를 돌며 값이 맞은 경우 카운트를 늘려주면 된다.
주의할 점은 문제가 3명의 패턴보다 긴 경우가 있으므로 순회할 수 있도록 % 을 이용하여 해당 패턴의 길이만큼 연산해주면 된다.
더 깔끔하게 짜고 싶었는데, 그러지 못해서 아쉽다.
def solution(answers):
answer = []
first = [1,2,3,4,5]
second = [2,1,2,3,2,4,2,5]
third = [3,3,1,1,2,2,4,4,5,5]
dic = {1:0, 2:0, 3:0}
for i in range(len(answers)):
if first[i%len(first)] == answers[i]:
dic[1] += 1
if second[i%len(second)] == answers[i]:
dic[2] += 1
if third[i%len(third)] == answers[i]:
dic[3] += 1
m = max(dic[1], dic[2], dic[3])
for i in range(1,4):
if m == dic[i]:
answer.append(i)
return answer