본문 바로가기
Coding Test/Programmers

[Programmers] [투포인터] Lv 2. 연속된 부분 수열의 합

by song.ift 2023. 7. 31.

https://school.programmers.co.kr/learn/courses/30/lessons/178870

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

cpp
닫기
#include <string> #include <vector> using namespace std; #include <string> #include <vector> using namespace std; vector<int> solution(vector<int> sequence, int k) { ​​​​int s = 0, e = 0; ​​​​int sum = sequence[0]; // 부분 수열의 합 ​​​​int subLen = sequence.size() + 1; // 부분 수열의 길이 ​​​​pair<int, int> result; // 부분 수열의 시작 인덱스와 마지막 인덱스를 담은 객체 ​​​​while (s <= e && e < sequence.size()) { ​​​​​​​​if (sum < k) sum += sequence[++e]; ​​​​​​​​else if (sum == k) { ​​​​​​​​​​​​if (e - s + 1 < subLen) { // 길이가 더 짧은 수열이면 ​​​​​​​​​​​​​​​​subLen = e - s + 1; ​​​​​​​​​​​​​​​​result = { s, e }; ​​​​​​​​​​​​} ​​​​​​​​​​​​sum -= sequence[s++]; ​​​​​​​​} ​​​​​​​​else sum -= sequence[s++]; ​​​​} ​​​​return { result.first, result.second }; }

GitHub : https://github.com/developeSHG/Algorithm-Baekjoon_Programmers/commit/fb44b5f9b72c6935929527425b45f07c0537b2df

 

[unrated] Title: 연속된 부분 수열의 합, Time: 0.01 ms, Memory: 4.13 MB -Baekjo… · developeSHG/Algorithm-Baekjoon_Pro

…onHub

github.com

 

댓글