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

Hyunwoo Park·2021년 3월 16일
0

프로그래머스

목록 보기
2/4

결국 3명만 잘 처리해주면 되므로 3명의 패턴을 잘 기록해 둔 뒤 answers 리스트를 돌며 값이 맞은 경우 카운트를 늘려주면 된다.
주의할 점은 문제가 3명의 패턴보다 긴 경우가 있으므로 순회할 수 있도록 % 을 이용하여 해당 패턴의 길이만큼 연산해주면 된다.

더 깔끔하게 짜고 싶었는데, 그러지 못해서 아쉽다.

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]
    
    dic = {1:0, 2:0, 3:0}
    
    for i in range(len(answers)):
        
        if first[i%len(first)] == answers[i]:
            dic[1] += 1
        
        if second[i%len(second)] == answers[i]:
            dic[2] += 1
        
        if third[i%len(third)] == answers[i]:
            dic[3] += 1
            
    m = max(dic[1], dic[2], dic[3])
    
    for i in range(1,4):
        if m == dic[i]:
            answer.append(i)
        
    return answer
profile
만나서 반갑습니다.

0개의 댓글

관련 채용 정보