Algorithm/프로그래머스
[프로그래머스] 연속 부분 수열 합의 개수 (Java)
Carroti
2022. 11. 12. 12:20
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘
해시셋
풀이
elements의 각 원소를 시작으로 elements의 원소 개수만큼 누적하며 그 값을 해시셋에 삽입한다.
해시셋은 중복을 허용하지 않기 때문에 탐색이 끝난 후 해시셋의 원소 개수가 답이 된다.
* 인덱스를 elements의 원소 개수로 나머지 연산해 범위를 벗어나지 않게 한다.
코드
import java.util.*;
class Solution {
public int solution(int[] elements) {
Set<Integer> set = new HashSet<>();
for(int i=0; i<elements.length; i++) {
int sum = 0;
for(int j=0; j<elements.length; j++) {
sum += elements[(i + j) % elements.length];
set.add(sum);
}
}
return set.size();
}
}