어흥
[프로그래머스] 연속 부분 수열 합의 개수 (C++) 본문
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
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 부대복귀 (C++) (0) | 2023.08.26 |
---|---|
[프로그래머스] 올바른 괄호 (C++) (0) | 2023.08.25 |
[프로그래머스] 디펜스 게임 (C++) (0) | 2023.08.07 |
[프로그래머스] 테이블 해시 함수(C++) (0) | 2023.08.07 |
[프로그래머스] 괄호 변환 (Java) (0) | 2022.04.15 |
Comments