def solution(answer):
arr1 = [1,2,3,4,5]
arr2 = [2,1,2,3,2,4,2,5]
arr3 = [3,3,1,1,2,2,4,4,5,5]
result1 = 0
result2 = 0
result3 = 0
for i in range(len(answer)):
if answer[i] == arr1[i % len(arr1)]:
result1 += 1
if answer[i] == arr2[i % len(arr2)]:
result2 += 1
if answer[i] == arr3[i % len(arr3)]:
result3 += 1
arr = [result1, result2, result3]
result = []
for i, v in enumerate(arr):
if v == max(arr):
result.append(i+1)
return result
이 문제는 특별한 해결 방법이 필요하기보단 개발자로서의 센스가 있어야 한다. 먼저 수포자 1,2,3의 변수를 리스트로 선언해주고 각각 값을 arr1, arr2, arr3에 넣어준다. 그 후 각각의 정답을 맞춘 횟수를 result1, resutlt2, result3로 초기화 해주고 answer의 길이만큼 반복문을 돌려준뒤에 arr1,arr2,arr3의 값과 정답을 맞추어 본다. 이때 arr의 인덱스들은 %len(arr)들을 해주면 만약 [1,2,3,4,5]의 값을 갖고 있는 arr1은 i가 5일때 arr1[5 % len(arr1)] == arr1[0] 과 같이 되므로 %len(arr1)에 의해 다시 인덱스가 처음부터 돌게 된다. 이런 메커니즘으로 result1,2,3을 구했으면 arr이란 리스트에 넣어주고 이 리스트의 max값과 같은 값을 갖는 arr의 인덱스를 result에 넣어주고 반환시킨다.