자연수로 이루어진 연속 원형 수열의 합으로 만들 수 있는 수가 모두 몇 가지 인지 구하고 싶다는 철수 이다..

원형 수열이란 일반 적인 수열에서 처음과 끝이 연결된 수열이다..
원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수를.. 철수를 위해 구해보도록 하자..
처음엔 원형 수열...? 뭐.. ?
라고 했지만 별건 없었다
말 그대로 이어져 있기 때문에 연속 부분 수열 합을 구할때
만약 3개의 합이 필요하다면 [7,4,1], [4,1,1], [1,1,9] 이렇게 가다가 [1,9,7], [9,7,4] 이런식으로 끊기지 않고 다시 앞의 원소를 참조하는 식의 특징이 있다는 것..!
길이가 n 이라면 각 1개의 합으로 구한 수열 부터, n개의 합으로 구한 수열을 모두 구한 후, 유니크한 수만 뽑아내어 개수를 세어 주면 되는 것이다..!

최종 코드는 이렇다!
def solution(elements):
answer = 0
num_list=[]
for i in range(len(elements)): # 1개, 2개, 3개...
for j in range(len(elements)): # 첫번째, 두번째, 세번째...
if (j+i+1)>len(elements):
num_list.append(sum(elements[j:]+elements[:j+i+1-len(elements)]))
else:
num_list.append(sum(elements[j:j+i+1]))
num_list = list(set(num_list))
return len(num_list)
첫번째 for 문은 +1 개씩 더 많은 수를 합하며 수열을 만들어 주기 위한 부분 이고
두번째 for 문은 참조할 원소 인덱스의 첫부분을 하나씩 뒤로 집어주기 위한 부분 이다!
원형 수열이라 인덱스가 배열의 길이를 넘을 시 앞으로 돌아가므로 배열의 길이를 넘는 경우와 아닌 경우를 단순히 나누어 주었고..!
sum 결과들을 list 로 담은 후 set 으로 유니크하게 만들고 남은 숫자의 갯수를 return~
원형 수열이 너무 낯설어서 처음엔 뭔소리냐며 키보드를 팡팡 칠뻔 했지만
그래도 풀었다~
