programmers_연속 부분 수열 합의 개수_java
2023. 4. 5. 17:42ㆍAlgorithm/Programmers
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131701
import java.util.*;
class Solution {
public int solution(int[] elements) {
int answer = 0;
int elementsLength = elements.length;
answer = findSum(elements, elementsLength);
return answer;
}
public int findSum(int[] elements, int elementsLength){
Set<Integer> set = new HashSet<>(); // 중복 방지
for(int subSequenceLength = 1; subSequenceLength<=elementsLength; subSequenceLength++){ // 부분 수열 길이
int left = 0;
int right = 0;
int sum = 0;
for(int i = 0 ; i< subSequenceLength; i++){ // 초기 sum 값 설정
sum+=elements[right];
right = (right+1) % elementsLength;
}
set.add(sum);
// System.out.println(left + " " + right + " " + sum);
for(int i = 0; i<elementsLength; i++){ // 나머지 sum 구하기
sum = sum + elements[right] - elements[left];
left = (left+1) % elementsLength;
right = (right+1) % elementsLength;
set.add(sum);
}
}
return set.size();
}
}
'Algorithm > Programmers' 카테고리의 다른 글
programmers_타겟 넘버_java (0) | 2023.04.06 |
---|---|
programmers_[1차] 뉴스 클러스터링_java (0) | 2023.04.05 |
programmers_n^2 배열 자르기_java (0) | 2023.04.05 |
programmers_튜플_java (0) | 2023.04.04 |
programmers_행렬의 곱셈_java (0) | 2023.04.04 |