프로그래머스 풀이

프로그래머스 모의고사(파이썬)

ag2개발자 2022. 2. 11. 19:05

처음에 비교하는 거는 익숙해서 잘됐는데 처음에 반복되는 배열을 어떤크기로 정의할지,

마지막에 가장 많이 맞춘 애들을 어떻게 정렬해서 리턴할지가 고민이 됐었다.

def solution(answers):
    answer = []
    a = [0]*3   #인덱스 i+1번째 수포자가 맞춘개수
    num1 = [1,2,3,4,5]*(len(answers)//5+1)  
    num2 = [2,1,2,3,2,4,2,5]*(len(answers)//8+1)
    num3 = [3,3,1,1,2,2,4,4,5,5]*(len(answers)//10+1)      #어짜피  len(answer)만큼 돌릴것이기 때문에 넉넉하게
    for i in range(len(answers)):
        if num1[i]==answers[i]:
            a[0]+=1
        if num2[i]==answers[i]:
            a[1]+=1
        if num3[i]==answers[i]:
            a[2]+=1     #완전탐색으로 일일히 비교해줌
    for i in range(3):
        maxa=max(a)
        if a[i]==maxa:  #최대값과 같은 애들 순서대로 append
            answer.append(i+1)
    
    return answer