Skip to content

Number of sums of consecutive subsequences

1. Problem

해당 문제는 여기에서 확인하실 수 있습니다.

2. Answer

import java.util.HashSet;
import java.util.Set;

class Solution {
  // 배열 `elements` 내 연속된 부분 합 집합의 크기를 반환하는 함수
  public int solution(int[] elements) {
    // 연속된 부분 합을 저장하는 집합
    Set<Integer> set = new HashSet<>();

    // 부분 합의 길이 (start)
    int start = 1;

    // 모든 길이 (start)에 대해 연속된 부분 합 계산
    while (start <= elements.length) {
      for (int i = 0; i < elements.length; i++) {
        // 연속된 부분 합 초기화
        int value = 0;

        // 지정된 길이 (start)만큼 elements 배열 순환하며 합 계산
        for (int j = i; j < i + start; j++) {
          // 배열 인덱스 범위 벗어나면 elements.length 를 이용하여 다시 시작
          value += elements[j % elements.length];
        }

        // 계산된 연속된 부분 합 집합에 추가
        set.add(value);
      }
      
      // 다음 길이 (start) 로 진행
      start++;
    }

    // 연속된 부분 합 집합의 크기 반환
    return set.size();
  }
}