알고리즘/Java
프로그래머스 코딩테스트 Level 2. 연속 부분 수열 합의 개수 with Java
yhyuk
2024. 9. 22. 17:53
728x90
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131701
풀이
import java.util.*;
class Solution {
public int solution(int[] elements) {
// elements의 2배 크기의 배열 생성
int[] newElements = new int[elements.length * 2];
// newElements의 i와 i + elements.length 위치에 elements[i] 저장
for (int i=0; i<elements.length; i++) {
newElements[i] = elements[i];
newElements[i + elements.length] = elements[i];
}
// 중복 제거 Set
Set<Integer> set = new HashSet<>();
// 부분 수열 합
for (int i=0; i<elements.length; i++) {
for (int j=0; j<elements.length; j++) {
// 새 배열에서 j부터 j+i-1 까지 부분 배열의 합을 구하고 Set에 추가
set.add(Arrays.stream(newElements, j, j+i).sum());
}
}
return set.size();
}
}
728x90
반응형