https://programmers.co.kr/learn/courses/30/lessons/42840
def solution(answers):
answer = []
a = [1, 2, 3, 4, 5]
b = [2, 1, 2, 3, 2, 4, 2, 5]
c = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
hit = [0,0,0] # 각 학생이 정답을 맞춘 횟수 저장
for i in range(len(answers)):
if answers[i] == a[i%5]:
hit[0] += 1
if answers[i] == b[i%8]:
hit[1] += 1
if answers[i] == c[i%10]:
hit[2] += 1
hitmax = max(hit)
for i in range(3):
if hit[i] == hitmax:
answer.append(i+1)
return answer
완전탐색 카테고리의 문제이다.
학생 세명은 규칙적으로 답을 찍는다.
계속 증가하는 인덱스를 규칙에 맞춰주기위해 나머지연산을 이용한다.
def solution(answers):
pattern1 = [1,2,3,4,5]
pattern2 = [2,1,2,3,2,4,2,5]
pattern3 = [3,3,1,1,2,2,4,4,5,5]
score = [0, 0, 0]
result = []
for idx, answer in enumerate(answers):
if answer == pattern1[idx%len(pattern1)]:
score[0] += 1
if answer == pattern2[idx%len(pattern2)]:
score[1] += 1
if answer == pattern3[idx%len(pattern3)]:
score[2] += 1
for idx, s in enumerate(score):
if s == max(score):
result.append(idx+1)
return result
위 코드는 문제에서 가장 많은 좋아요를 받은 풀이이다.
나의 풀이와 동일한 아이디어를 공유한다.
코드에서 다른점은 enumerate()함수를 이용해 인덱스와 요소를 받아왔다는 점이다.