[알고리즘 문제풀이] 프로그래머스 - 모의고사

나른한 개발자·2022년 4월 28일
0

문제풀이

목록 보기
13/13

문제 보러가기

코드

def solution(answers):
    answer = []
    pattern = [
        [1, 2, 3, 4, 5],
        [2, 1, 2, 3, 2, 4, 2, 5],
        [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    ]
    for value in pattern:
        count = 0
        j = 0
        for i in range(len(answers)):
            if value[j] == answers[i]:
                count+=1
            j += 1
            if j > len(value)-1:
                j = 0
        answer.append(count)
    return [i+1 for i, an in enumerate(answer) if max(answer) == an]

패턴의 길이보다 문제의 길이가 더 길 경우 인덱스를 0으로 재조정하는 구문을 if문으로 처리하였다. 그러나 문제의 길이만큼 패턴을 반복해야한다는 점을 이용하여 value[i % len(value)] 처럼 풀어도 깔끔한 것 같다. (길이에 따라 인덱스가 조정하여 i, j 두개로 나눈 인덱스를 하나만 써도 됨)

for value in pattern:
	count = 0
    for i in range(len(answers)):
    	if value[i % len(value)] = answer[i]:
        	count += 1
profile
Start fast to fail fast

0개의 댓글