본문 바로가기
Programmers/programmers

[프로그래머스] 리스트 생성 방식

by 딸기뚜왈기 2024. 1. 29.
def solution(answers):
    p = [[1, 2, 3, 4, 5],
         [2, 1, 2, 3, 2, 4, 2, 5],
         [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
    s = [0] * len(p)

    for q, a in enumerate(answers):
        for i, v in enumerate(p):
            if a == v[q % len(v)]:
                s[i] += 1
    return [i + 1 for i, v in enumerate(s) if v == max(s)]​
def solution(answers):
    answer = [[0,1],[0,2],[0,3]]
    list_1 = [1, 2, 3, 4, 5] * (len(answers)//5 +1) 
    list_2 = [2, 1, 2, 3, 2, 4, 2, 5] * (len(answers)//8 +1)
    list_3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] * (len(answers)//10 +1)
    
    result = []
    for idx,i in enumerate(answers):
        if i == list_1[idx]:
            answer[0][0] += 1
        if i == list_2[idx]:
            answer[1][0] += 1 
        if i == list_3[idx]:
            answer[2][0] += 1
    for i,j in sorted(answer, reverse = True):
        if i == max(answer)[0]:
            result.append(j)
            
    return sorted(result)

 

해당 코드는 3개의 서브 리스트(sub-list)를 갖는 2차원 리스트인 answer를 생성

answer = [[0,1],[0,2],[0,3]]

 

리스트 p의 길이와 동일한 길이를 갖는 원소가 0으로 초기화된 리스트 s를 생성

  s = [0] * len(p)