Algorithm
[프로그래머스/level1/python] 수포자
Choi G.H
2022. 4. 17. 12:34
반응형
from collections import deque
def solution(answers):
answer = []
a = deque([1,2,3,4,5])
b = deque([2,1,2,3,2,4,2,5])
c = deque([3,3,1,1,2,2,4,4,5,5])
scores = [0,0,0]
for i in range(len(answers)):
if(answers[i] == a[0]):
scores[0] +=1
if(answers[i] == b[0]):
scores[1] +=1
if(answers[i] == c[0]):
scores[2] +=1
a.rotate(-1)
b.rotate(-1)
c.rotate(-1)
max_ = max(scores)
if(scores[0] == max_):
answer.append(1)
if(scores[1] == max_):
answer.append(2)
if(scores[2] == max_):
answer.append(3)
return answer
모든 참가자들의 답안은 같은 패턴이 반복되기 때문에
데크(deque)의 rotate() 를 사용해서 문제를 풀어보았다.
각 참가자 별로 답안의 한 사이클을 데크에 저장해둔 다음
answers의 길이만큼 답안을 대조하고 rotate 한다.
그런 다음 최대값을 가진 참가자 번호를 answer에 append 한다.
반응형