주어진 원소 배열을 슬라이싱해서 뒤에 추가로 붙여준 배열을 만듭니다.
1부터 주어진 원소 배열 개수만큼의 연속 부분 수열을 만들어주고 더해준 뒤 Set에 저장하여 중복을 제거 해줍니다.
Set의 길이를 출력해줍니다.
function solution(elements) {
const answer = new Set();
for (let i = 0; i < elements.length; i++) {
const temp = [...elements, ...elements.slice(0, i)];
let j = 0;
while (j <= elements.length) {
let sum = temp.slice(j, j + i);
if (sum.length !== 0) answer.add(sum.reduce((a, c) => a + c));
j++;
}
}
answer.add(elements.reduce((a, c) => a + c));
return answer.size;
}