[Level1] 모의고사

Quesuemon·2021년 4월 10일
0

코딩테스트 준비

목록 보기
74/111

🛠 문제

https://programmers.co.kr/learn/courses/30/lessons/42840


👩🏻‍💻 해결 방법

각 수포자의 찍는 규칙을 담은 리스트를 만들어주었다
해당 리스트 값(one[i % len(one)])과 answer의 값(answer[i])이 같다면 맞은 개수를 증가해주는 방식으로 완전탐색을 통해 문제를 해결할 수 있었다

소스 코드

def solution(answers):
    result = []
    one = [1, 2, 3, 4, 5]
    two = [2, 1, 2, 3, 2, 4, 2, 5]
    three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    
    one_s, two_s, three_s = 0, 0, 0
    for i in range(len(answers)):
        if one[i % len(one)] == answers[i]:
            one_s += 1
        if two[i % len(two)] == answers[i]:
            two_s += 1 
        if three[i % len(three)] == answers[i]:
            three_s += 1
    result.append((1, one_s))
    result.append((2, two_s))
    result.append((3, three_s))
    result.sort(key=lambda x : (-x[1], x[0]))
    max_s = result[0][1]
    answer = [result[0][0]]
    for i in range(1, len(result)):
        if max_s == result[i][1]:
            answer.append(result[i][0])
    answer.sort()
    return answer

0개의 댓글