def solution(elements):
element_length = len(elements)
sum_list = []
for i in range(element_length):
for j in range(i, i + element_length):
if j >= element_length:
sum_list.append(sum(elements[i % element_length:]) + sum(elements[:j % element_length]))
else:
sum_list.append(sum(elements[i % element_length: j % element_length]))
return len(list(set(sum_list)))
브루트 포스를 이용하여 원순열 예외처리를 해주었다.
시작 점을 기준으로 주어진 원소들의 길이까지 늘려가면서 합을 구하였다.
def solution(elements):
ll = len(elements)
res = set()
for i in range(ll):
ssum = elements[i]
res.add(ssum)
for j in range(i+1, i+ll):
ssum += elements[j%ll]
res.add(ssum)
return len(res)
시작 점을 기준으로 길이별로 잘라서 그 합을 구하는 것이 아닌, 하나씩 더해가면서 그 합을 넣어 주었다.
https://school.programmers.co.kr/learn/courses/30/lessons/131701