완전탐색 알고리즘의 정의는 다음과 같다.
모든 경우의 수를 전부 찾아서 답을 찾는 알고리즘. 가능한 모든 경우의 수를 다 해보는 것으로, 가장 확실한 방법이지만 시간이 오래 걸린다. Exhaustive Search, Brute force algorithm 이라고 불린다.
학생 세 명을 student라는 2차원 배열에 집어 넣고, 맞춘 문제의 수를 기록하는 score 배열을 생성. 문제를 찍는 방식이 반복되므로 입력된 문제의 수만큼 반복하여 정답을 비교하였다. 문제와 답안이 일치한 경우 해당 학생의 score[i]를 +1씩 증가시킨다. 이후 max() 함수로 score의 최대값을 구하여 일치하는 모든 학생 (index+1)을 출력하였다.
def solution(answers):
answer = []
score = [0,0,0]
student = [[1,2,3,4,5],
[2,1,2,3,2,4,2,5],
[3,3,1,1,2,2,4,4,5,5]]
for i in range (len(answers)):
if answers[i] == student[0][(i%5)]:
score[0] += 1
if answers[i] == student[1][(i%8)]:
score[1] += 1
if answers[i] == student[2][(i%10)]:
score[2] += 1
for i in range (3):
if score[i] == max(score):
answer.append(i+1)
return answer