문제

[프로그래머스] 모의고사 (LV. 1)

요약

  • 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, …
  • 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, …
  • 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, …
  • 정답들을 담은 배열이 주어지면, 가장 많은 정답을 맞힌 사람을 배열에 담아 반환.

분류

  • 완전탐색

풀이

1. 내 풀이

  • 발상 : 그냥 푼다.
def solution(answers):
    first_student = [1, 2, 3, 4, 5]
    second_student = [2, 1, 2, 3, 2, 4, 2, 5]
    third_student = [3, 1, 2, 4, 5]
    scores = [0, 0, 0]

    for i, answer in enumerate(answers):
        if first_student[i % 5] == answer : scores[0] += 1
        if second_student[i % 8] == answer : scores[1] += 1
        if third_student[i % 10 // 2] == answer : scores[2] += 1

    answer = []

    for index, score in enumerate(scores):
        if score == max(scores): answer.append(index + 1)


    return answer