1. 제출 코드 (21분 32초 / 구현)
import java.util.*;
class Solution {
public int solution(int[] elements) {
int answer = 0;
Set<Integer> set = new HashSet<>();
for(int i = 1; i <= elements.length; i++) {
for(int j = 0; j < elements.length; j++) {
int temp = 0;
int idx = j;
int cnt = 0;
while(cnt < i) {
if(idx >= elements.length) {
idx = 0;
}
temp += elements[idx++];
cnt++;
}
set.add(temp);
}
}
answer = set.size();
return answer;
}
}
2. 구현 로직
- for문을 이용하여 연속 부분 수열의 길이 지정
- 2중 for문을 작성하여 수열이 시작하는 위치를 갱신
- whlie문을 통해 연속 부분 수열의 합을 구하는데 원형 수형이므로 idx가 elements의 길이를 넘어가면 0으로 갱신
- 나온 값을 set에 저장하여 중복 제거