[프로그래머스/Python] 모의고사

류성훈·2022년 6월 27일
0

코딩테스트

목록 보기
1/29
post-thumbnail

https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3#

일정한 패턴으로 문제를 찍는 세명의 점수를 카운트 하고, 고득점자를 리턴하는 문제이다.

answers에는 문제이 답이 주어진다.

코드

def solution(answers):
    answer = []
    len_answer = len(answers)
    
    student1 = [1,2,3,4,5] #5개 반복
    student2 = [2,1,2,3,2,4,2,5] #8개 반복
    student3 = [3,3,1,1,2,2,4,4,5,5] #10개 반복
    
    student1 = student1*(len_answer//len(student1)) + student1[:len_answer%len(student1)]
    student2 = student2*(len_answer//len(student2)) + student2[:len_answer%len(student2)]
    student3 = student3*(len_answer//len(student3)) + student3[:len_answer%len(student3)]
    
    count1, count2, count3 = 0, 0, 0
    
    for i,s1,s2,s3 in zip(answers,student1,student2,student3):
        if i == s1:
            count1 += 1
        if i == s2:
            count2 += 1
        if i == s3:
            count3 += 1
            
    print(count1, count2, count3)
    
    max_count = max(count1, count2, count3)
    
    if count1 == max_count:
        answer.append(1)
    if count2 == max_count:
        answer.append(2)
    if count3 == max_count:
        answer.append(3)
    
    return answer

코드 설명

student1 = student1*(len_answer//len(student1)) + student1[:len_answer%len(student1)]
student2 = student2*(len_answer//len(student2)) + student2[:len_answer%len(student2)]
student3 = student3*(len_answer//len(student3)) + student3[:len_answer%len(student3)]

주어진 문제 수와 학생들이 제출한 문제 갯수를 맞추기 위하여 선언해주었다.

만약 answers=[1,2,3,4,5]라면,
student 1,2,3은 각각
[1, 2, 3, 4, 5],[2, 1, 2, 3, 2],[3, 3, 1, 1, 2]
을 가지게 된다.

그리고 for문을 돌려 조건문으로 비교해서 count하면 끝 !

profile
(전)Backend Developer / (현)Data Engineer

0개의 댓글