문제
https://school.programmers.co.kr/learn/courses/30/lessons/131701
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
Set을 이용하는 문제
특히, 중복을 제거한다면 Set을 이용하도록 하자
풀이 흐름
1. 수열의 길이가 1부터 elements 길이가 될때 까지 반복
2. 0부터 시작해서 수열의 길이가 1인것부터 수열의 합 구하기
3. 원형배열 같은 경우 인덱스가 반복됨=>나머지를 구하면됨. 나머지를 이용하여 수열의 합 구하기
4. Set의 size 구하기
코드
import java.util.*;
class Solution {
public int solution(int[] elements) {
HashSet<Integer> set = new HashSet<>();
for(int i=1;i<=elements.length;i++){
for(int j=0;j<elements.length;j++){
int sum = 0;
for(int k=j;k<j+i;k++){
sum += elements[k%elements.length];
}
set.add(sum);
}
}
int answer = set.size();
return answer;
}
}