연속 부분 수열 합의 개수

magicdrill·2025년 2월 18일
0

연속 부분 수열 합의 개수

#include <string>
#include <vector>
#include <set>
#include <iostream>

using namespace std;

int solution(vector<int> elements) {
    int answer = 0;
    set<int> sums;
    int n = elements.size();
    int length, start, sum = 0, i;

    // 길이 1부터 n까지의 부분 수열 합 구하기
    for (length = 1; length <= n; length++) { 
        for (start = 0; start < n; start++) { // 시작점 설정
            sum = 0;
            // 부분 수열의 합 구하기
            for (i = 0; i < length; i++) { 
                sum += elements[(start + i) % n]; // 원형이므로 % n 사용
            }
            sums.insert(sum);
            cout << sum << " ";
        }
    }
    answer = sums.size(); // 서로 다른 합의 개수 반환
    
    return answer;
}

0개의 댓글