[Algorithm🧬] 模擬試験


質問する / 答えを出す。py
import math

def solution(answers):
    answer = []
    # 이렇게 하고 싶지 않아서 여러 방법을 생각해봤으나.. 생각이 나지 않아서 이렇게 했다.
    first = [1, 2, 3, 4, 5]
    second = [2, 1, 2, 3, 2, 4, 2, 5]
    third = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    
    # answers 길이보다 길게 만들어줘야 비교가 가능하니까 그렇게 만들어줌. 위의 코드와 한번에 썼어도 괜찮았을듯.
    # 이것 대신 밑의 for문에서 각각을 i % len(first) 이렇게 해주는 것이 더 좋았을듯.
    first = first * math.ceil(len(answers) / len(first))
    second = second * math.ceil(len(answers) / len(second))
    third= third * math.ceil(len(answers) / len(third))
    
    
    count = [0] * 3
    
    # 정답 개수 올리기.
    for i in range(len(answers)):
        if answers[i] == first[i]:
            count[0] += 1
        if answers[i] == second[i]:
            count[1] += 1
        if answers[i] == third[i]:
            count[2] += 1

    # 제일 큰 점수 찾고
    maxCount = max(count[0], count[1], count[2])
    
    # 그 점수와 같으면 배열에 추가
    for i in range(3):
        if count[i] == maxCount:
            answer.append(i+1)
    
    
    return answer
何も思い出せない~ということでこのまま解けてしまいました…同じ質問で、人数入力を受けて解けるようになったら…非効率なコードかもしれません.スペースの複雑さもあまりよくありません...