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

kimgaeul02·2023년 2월 2일

프로그래머스

목록 보기
10/11

📄 모의고사

🔗 완전탐색 : 모의고사


📌 해석

완전탐색 알고리즘의 정의는 다음과 같다.

모든 경우의 수를 전부 찾아서 답을 찾는 알고리즘. 가능한 모든 경우의 수를 다 해보는 것으로, 가장 확실한 방법이지만 시간이 오래 걸린다. Exhaustive Search, Brute force algorithm 이라고 불린다.


📌 풀이

학생 세 명을 student라는 2차원 배열에 집어 넣고, 맞춘 문제의 수를 기록하는 score 배열을 생성. 문제를 찍는 방식이 반복되므로 입력된 문제의 수만큼 반복하여 정답을 비교하였다. 문제와 답안이 일치한 경우 해당 학생의 score[i]를 +1씩 증가시킨다. 이후 max() 함수로 score의 최대값을 구하여 일치하는 모든 학생 (index+1)을 출력하였다.


💻 코드

def solution(answers):
    
    answer = []
    score = [0,0,0]
    student = [[1,2,3,4,5],
               [2,1,2,3,2,4,2,5],
               [3,3,1,1,2,2,4,4,5,5]]
    
    for i in range (len(answers)):
        if answers[i] == student[0][(i%5)]:
            score[0] += 1
        if answers[i] == student[1][(i%8)]:
            score[1] += 1
        if answers[i] == student[2][(i%10)]:
            score[2] += 1
    
    for i in range (3):
        if score[i] == max(score):
            answer.append(i+1)
            
    return answer

0개의 댓글