프로그래머스 #모이고사 :완전탐색/ lv1

🚩플로우 (선택)

코드를 풀이할 때 적었던 플로우가 있나요?

  1. 패턴 정의하기
  2. point 이용해서 각 사람별 정답 개수 세기
  3. 가장 많이 맞춘 사람 idx 반환 (max 정답 개수 중복 가능)

🚩제출한 코드

"""
num1 =  [1,2,3,...n ] * len(answers) 반복
num2  = [2, 1, 2, 3, 2, 4, 2, 5] 반복
num3 = [3,3,1,1,2,2,4,4,5,5 반복

idea : 답 point = 문제 번호 % 패턴 개수

"""
def solution(answers):
    answer = [0] *3
    num1 = [1,2,3,4,5]
    num2 = [2, 1, 2, 3, 2, 4, 2, 5]
    num3 = [3,3,1,1,2,2,4,4,5,5]
    # 0. 패턴 정의하기
    patterns = [num1, num2, num3] 
    # 1.정답 개수 세기
    for i in range(len(answers)):
        for j in range(3):
            pattern = patterns[j]
            p= i % len(pattern) # point이용
            if pattern[p] == answers[i]:
                answer[j]+=1

    #2. 가장 많이 맞춘 사람(중복 고려)
    max_idx = []
    max_num = max(answer) #2-1 가장 많이(max) 맞춘 개수 찾기
    for i in range(len(answer)) : # 2-2. 3명 돌면서 max 중복 값 가진 사람 idx 색출 -> 추가
        if max_num == answer[i] :
            max_idx.append(i+1)
    print(max_idx)
        
    
    return max_idx

💡TIL

배운 점이 있다면 입력해주세요