본문 바로가기

코딩테스트/Python

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

내 코드

def solution(answers):
    answer = []
    
    a = [1,2,3,4,5]
    b = [2,1,2,3,2,4,2,5]
    c = [3,3,1,1,2,2,4,4,5,5]
    
    sol = [0,0,0]
    
    for i in range(len(answers)):
        if a[i%len(a)] == answers[i]:
            sol[0]+=1
        if b[i%len(b)] == answers[i]:
            sol[1]+=1
        if c[i%len(c)] == answers[i]:
            sol[2]+=1
    
    for i in range(3):
        if max(sol)==sol[i]:
            answer.append(i+1)
    
    return answer

정답 갯수를 sol 리스트에 더해준 후 max를 구한다.

 

다른사람 코드

def solution(answers):
    pattern1 = [1,2,3,4,5]
    pattern2 = [2,1,2,3,2,4,2,5]
    pattern3 = [3,3,1,1,2,2,4,4,5,5]
    score = [0, 0, 0]
    result = []

    for idx, answer in enumerate(answers):
        if answer == pattern1[idx%len(pattern1)]:
            score[0] += 1
        if answer == pattern2[idx%len(pattern2)]:
            score[1] += 1
        if answer == pattern3[idx%len(pattern3)]:
            score[2] += 1

    for idx, s in enumerate(score):
        if s == max(score):
            result.append(idx+1)

    return result

비슷한데 for문에 enumerate를 사용하였다. enumerate사용하는 연습을 많이해야겠다!