알고리즘 유형 : 완전탐색
풀이 참고 없이 스스로 풀었나요? : O
https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3
def solution(answers):
answer = []
person1 = [1, 2, 3, 4, 5]
person2 = [2, 1, 2, 3, 2, 4, 2, 5]
person3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
count = [0, 0, 0]
for i in range(len(answers)):
ans = answers[i]
if ans == person1[i%len(person1)]:
count[0] += 1
if ans == person2[i%len(person2)]:
count[1] += 1
if ans == person3[i%len(person3)]:
count[2] += 1
tmp = max(count)
for idx, c in enumerate(count):
if c == tmp:
answer.append(idx+1)
return answer
풀이 요약
이제 answers를 순회하면서, 각 단계에서 세 사람이 잘 찍었는지를 판별하여 count의 세 요소에 각각 카운팅해줄 것이다.
이 때, 패턴 한 세트의 길이가 answers보다 짧을 수 있으므로, 길이를 넘었을 때 패턴의 처음으로 돌아가서 답과 비교해줘야한다. 이 것은 모듈로 연산으로 구현 가능하다.
배운 점, 어려웠던 점