
코드에서 주의할 점은 elements[k%length]이다. 배열이 원형이기 때문에 인덱스가 배열의 길이를 넘어가면 처음으로 돌아가도록 %length 연산을 사용하였다. subList, 재귀로도 풀 수 있다.
import java.util.*;
class Solution {
public int solution(int[] elements) {
HashSet<Integer> hs = new HashSet<>();
int length = elements.length;
for(int i=1;i<=length;i++){
for(int j=0;j<length;j++){
int sum = 0;
for(int k=j;k<j+i;k++){
sum+=elements[k%length];
}
hs.add(sum);
}
}
return hs.size();
}
}
