https://school.programmers.co.kr/learn/courses/30/lessons/42840
❗ 완전탐색 문제로 수포자1,2,3의 답과 answers의 답을 일일이 대조하여 결과를 도출함
👉🏻 수포자들의 정답 리스트를 만드는 과정이 어설픈 것 같음...
def solution(answers):
answer = []
su_1=[1, 2, 3, 4, 5]*2000
su_2=[2, 1, 2, 3, 2, 4, 2, 5]*2000
su_3=[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]*2000
su_1=su_1[:len(answers)]
su_2=su_2[:len(answers)]
su_3=su_3[:len(answers)]
cnt=[0,0,0]
for i in range(len(answers)):
if answers[i]==su_1[i]:
cnt[0]+=1
if answers[i]==su_2[i]:
cnt[1]+=1
if answers[i]==su_3[i]:
cnt[2]+=1
for i in range(len(cnt)):
if cnt[i]==max(cnt):
answer.append(i+1)
return answer
❗ 다른 사람 풀이 참조 : 기본적인 풀이는 비슷하지만 cycle을 통해 수포자들의 답안 리스트 만들기,for 문에서 zip 이용
from itertools import cycle su_1=cycle([1,2,3,4,5]) su_2=cycle([2,1,2,3,2,4,2,5]) su_3=cycle([3,3,1,1,2,2,4,4,5,5]) #리스트의 일정 패턴을 무한히 순환함 next(cycle)로 cycle의 원소 순회
from itertools import cycle
def solution(answers):
answer = []
su_1=cycle([1,2,3,4,5])
su_2=cycle([2,1,2,3,2,4,2,5])
su_3=cycle([3,3,1,1,2,2,4,4,5,5])
cnt=[0,0,0]
for i, su1, su2, su3 in zip(answers, su_1, su_2, su_3):
if i==su1:
cnt[0]+=1
if i==su2:
cnt[1]+=1
if i==su3:
cnt[2]+=1
for i in range(len(cnt)):
if cnt[i]==max(cnt):
answer.append(i+1)
return answer