최대 1 분 소요

문제 링크

내 풀이

from collections import deque

def solution(elements):
    answer = []
    k = 1
    while k <= len(elements):
        n_deque = deque(elements)
        new_elements = elements
        for _ in range(len(elements)):
            hap = sum(new_elements[:k])
            answer.append(hap)
            n_deque.rotate(1)
            new_elements = list(n_deque)
        k += 1
    return len(set(answer))

다른 풀이

def solution(elements):
    answer = 0
    cycle = elements + elements
    s = set()
    for i in range(len(elements)):
        for j in range(len(elements)):
            s.add(sum(cycle[i:i+j]))
    return len(s)

풀이 해석

  • 리스트 두개를 이어 붙여서 풀었다
  • set을 이용해 중복항을 없앴다
  • for문 두개를 이용하였다

배울 점

  • list 두개를 붙이는 사고

댓글남기기