알고리즘/프로그래머스
[프로그래머스] 연속 부분 수열 합의 개수 (C++)
라이언납시오
2023. 8. 27. 16:33
728x90
반응형
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131701
1. 주의할 점
- 어떤 방식으로 1~배열의 길이 만큼의 원소를 더해서 중복을 제거할지 생각한다
2. 구현
- Set을 통해 중복을 제거하고 Set에는 연속된 부분 수열의 합을 넣는다
- N <= 1000이므로 N^2을 통해 진행해도 1초내에 들어온다고 판단
- Mod 연산을 통해 원형 수열에서 원소를 뽑아오는것 처럼 구현
#include <string>
#include <vector>
#include <set>
#include <math.h>
#include <iostream>
using namespace std;
int solution(vector<int> elements) {
set<int> s;
int len = elements.size();
for(int i=0;i<len;i++){
int sum = 0;
for(int j=i;j<i+len;j++){
sum+=elements[j%len];
s.insert(sum);
}
}
return s.size();
}
728x90
반응형