프로그래머스 - 모의고사

GGob2._.·2023년 4월 13일
0

algorithm

목록 보기
12/55

문제 설명


수포자가 찍는 방식에 따라 주어진 문제를 몇 문제 맞추는지 확인한 후, 가장 많이 맞춘 수포자를 출력하는 문제다.

만약 동일한 수를 맞춘 경우 수포자를 오름차순으로 출력한다.


접근 방식

  • 수포자마다 찍는 길이가 다르므로, 문제가 들어왔을 때 % 연산을 이용해 수포자들의 답변과 문제의 정답을 비교

  • 정답 수를 기록하는 배열을 선언하여, 최대값과 비교해 출력을 생산

작성한 코드

def solution(answers):
    answer = []
    
    student_one = [1,2,3,4,5]
    student_two = [2,1,2,3,2,4,2,5]
    student_three = [3,3,1,1,2,2,4,4,5,5]
    
    student_score = [0, 0, 0] 
    
    for i in range(len(answers)):
        if answers[i] == student_one[i%5]:
            student_score[0] += 1
        if answers[i] == student_two[i%8]:
            student_score[1] += 1
        if answers[i] == student_three[i%10]:
            student_score[2] += 1
    
    for idx, score in enumerate(student_score):
        if score == max(student_score):
            answer.append(idx+1)
        
    return answer
profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글