문제
https://school.programmers.co.kr/learn/courses/30/lessons/131701
접근 방법 및 풀이
1개부터 최대 배열의 길이 만큼을 선택하여 더한 값을 중복을 제거한 값의 수를 반환
원형 수열이라 표현 했으므로 문제의 예시의 배열인 [7,9,1,1,4]인 경우에 연속된 3개의 수를 선택하는 상황에서 index가 4인 4와 index가 0인 7과 index가 1인 9의 합도 고려
import java.util.HashSet;
import java.util.Set;
public class Q30_131701 {
public int solution(int[] elements) {
Set<Integer> set = new HashSet<>();
int length = elements.length;
for (int size = 1; size <= length; size++) {
for (int i = 0; i < length; i++) {
int sum = 0;
for (int j = 0; j < size; j++) {
int index = (i + j) % length;
sum += elements[index];
}
set.add(sum);
}
}
return set.size();
}
}