Algorithm

[프로그래머스][완전탐색] 모의고사 (211109)

lluna 2021. 11. 9. 22:44
 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

접근방법

  • 학생별로 찍는 배열을 만들어주고, 카운트 초기화한다.
  • 문제를 돌면서 정답을 확인하고 맞으면 카운트를 1 증가시킨다.
  • 이 때, 나머지로 인덱스를 활용하는 것이 포인트이다. (문제 7번이라면 s1의 경우  6(idx) %5 =1(idx) 번째 정답 확인)
  • 학생 순서별로 정답수를 넣은 배열을 돌리면서 최댓값이 나오면 결과 배열에 추가한다.
def solution(answers):
    s1 = [1, 2, 3, 4, 5]
    s2 = [2, 1, 2, 3, 2, 4, 2, 5]
    s3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]

    cnt1, cnt2, cnt3 = 0, 0, 0
    for i in range(len(answers)):
        if s1[i % 5] == answers[i]:
            cnt1 += 1
        if s2[i % 8] == answers[i]:
            cnt2 += 1            
        if s3[i % 10] == answers[i]:
            cnt3 += 1

    result = []
    answer = [cnt1, cnt2, cnt3]
    for i in range(3):
        if answer[i] == max(answer):
            result.append(i+1)
    return result