- 난이도: Lv2
프로그래머스 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131701
풀이 링크(GitHub): hayannn/CodingTest_Java/프로그래머스/2/연속 부분 수열 합의 개수
풀이 시간 : 18분
import java.util.*;
class Solution {
public int solution(int[] elements) {
Set<Integer> set = new HashSet<>();
int len = elements.length;
int[] extended = new int[len * 2];
for (int i = 0; i < len * 2; i++) {
extended[i] = elements[i % len];
}
// 모든 길이의 연속 부분 수열 합 계산
for (int size = 1; size <= len; size++) {
for (int start = 0; start < len; start++) {
int sum = 0;
for (int i = start; i < start + size; i++) {
sum += extended[i];
}
set.add(sum);
}
}
return set.size();
}
}