SW/알고리즘

파이썬 : 프로그래머스 : 모의고사 : 풀이

얇은생각 2019. 8. 30. 18:30
반응형

풀이

def solution(answers):
    
    stu1 = [1,2,3,4,5]
    stu2 = [2,1,2,3,2,4,2,5]
    stu3 = [3,3,1,1,2,2,4,4,5,5]
    
    count1 = 0
    count2 = 0
    count3 = 0
    
    for i in range(len(answers)):
        if answers[i] == stu1[i%5]:
            count1 += 1
        
        if answers[i] == stu2[i%8]:
            count2 += 1
        
        if answers[i] == stu3[i%10]:
            count3 += 1
                
    maxVal = max(count1, count2)
    maxVal = max(maxVal, count3)
    
    answer = []

    if maxVal == count1:
        answer.append(1)
    if maxVal == count2:
        answer.append(2)
    if maxVal == count3:
        answer.append(3)       
    return answer

 

 

실행 결과

정확성 테스트

테스트 1 통과 (0.05ms, 10.8MB)
테스트 2 통과 (0.04ms, 10.8MB)
테스트 3 통과 (0.04ms, 10.8MB)
테스트 4 통과 (0.04ms, 10.9MB)
테스트 5 통과 (0.06ms, 10.9MB)
테스트 6 통과 (0.06ms, 10.7MB)
테스트 7 통과 (1.16ms, 11MB)
테스트 8 통과 (0.40ms, 10.9MB)
테스트 9 통과 (2.11ms, 13.6MB)
테스트 10 통과 (1.01ms, 11.2MB)
테스트 11 통과 (2.25ms, 14.1MB)
테스트 12 통과 (1.98ms, 13.3MB)
테스트 13 통과 (0.17ms, 10.8MB)
테스트 14 통과 (2.26ms, 14.5MB)

채점 결과

정확성: 100.0

합계: 100.0 / 100.0

 

 

총평

우선, 3가지 찍는 방식을 초기화해줍니다. 그 다음, 입력받은 문제의 정답을 비교하여 줍니다. 비교하여 줄떄, 찍는 방식 만큼 나머지 연산을 통해 정답 수를 카운트 해줍니다. 그 다음, 최대값을 뽑아냅니다. 그리고 그 최대값과 동일한 수포자들을 리스트에 담아주고 리턴을 하여 문제를 해결해 보았습니다.

반응형