728x90


📖  풀이 

우선 규칙을 나타내는 리스트들을 나열하고 그것을 answers와 비교해 1, 2, 3번 플레이어의 count를 하나씩 올려주었다.

그다음 이 3개의 count 중 max 값을 answer에 넣어주고 sort 해주어 문제를 풀었다.

하나하나 하드 코딩해서 코드가 매우 길다

def solution(answers):
    answer = []
    length = len(answers)
    temp2 = [2, 1, 2, 3, 2, 4, 2, 5]
    temp3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    a = []
    b = []
    c = []

    for i in range(length):
        a.append(i % 5 + 1)

    for i in range(length):
        if (i % 2) == 0:
            b.append(temp2[i % 8])
        else:
            b.append(temp2[i % 8])

    for i in range(length):
        if (i % 10) < 2:
            c.append(temp3[0])
        elif (i % 10) < 4:
            c.append(temp3[2])
        elif (i % 10) < 6:
            c.append(temp3[4])
        elif (i % 10) < 8:
            c.append(temp3[6])
        else:
            c.append(temp3[8])

    a_count = 0
    b_count = 0
    c_count = 0
    for i in range(len(answers)):
        if answers[i] == a[i]:
            a_count += 1
        if answers[i] == b[i]:
            b_count += 1
        if answers[i] == c[i]:
            c_count += 1

    if max(a_count, b_count, c_count) == a_count:
        answer.append(1)
    if max(a_count, b_count, c_count) == b_count:
        answer.append(2)
    if max(a_count, b_count, c_count) == c_count:
        answer.append(3)

    answer.sort()
    return answer

 

 

 

 

📌  다른 풀이

코드가 너무 복잡해 분명 다른 좋은 풀이가 있을 거라고 생각해 찾아봤다. 이 풀이는 규칙을 1, 2, 3 배열해놓고 enumerate를 적극 활용해 score에 맞춘 정답수를 저장해놓고 그중 max인 값의 인덱스를 result에 넣어 정답을 구한 기발한 풀이였다.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

복사했습니다!