모의고사 (Python)

0. 출처

1. 기록

  • 22/04/14 (목)

2. 풀이

(1) 아이디어

1. 아이디어
>> 1번 수포자 [1, 2, 3, 4, 5] 반복                    -> 5로 나눈 나머지
>> 2번 수포자 [2, 1, 2, 3, 2, 4, 2, 5] 반복           -> 8로 나눈 나머지
>> 3번 수포자 [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] 반복    -> 10으로 나눈 나머지

2. 시간복잡도
>>

3. 자료구조
>>

(2) 코드

def solution(answers):
    person1 = [1, 2, 3, 4, 5]
    person2 = [2, 1, 2, 3, 2, 4, 2, 5]
    person3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]

    answer_list = {'1':0, '2':0, '3':0}

    for i in range(len(answers)):
        if answers[i] == person1[i%5]:
            answer_list['1'] += 1
        if answers[i] == person2[i%8]:
            answer_list['2'] += 1
        if answers[i] == person3[i%10]:
            answer_list['3'] += 1

    max_value = max(answer_list.values())
    winner = []

    for key, value in answer_list.items():
        if max_value == value:
            winner.append(int(key))
    return winner

(3) 정리

일부러 dict 자료형을 써서 해결하려했고 unpacking 할 때 items() 함수를 써야하는 걸 정확히 알고 있지 않아서 에러가 계속생겼다.
하는 방법을 정확히 익혀두자!

(4) 참고

+ Recent posts