알고리즘/프로그래머스
[C++] 프로그래머스 연속된 부분 수열의 합
이영재의오른발
2023. 4. 13. 14:24
반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <string> #include <vector> #include <iostream> using namespace std; vector<int> solution(vector<int> sequence, int k) { vector<int> answer; int left = 0; int right = 0; int sum = sequence[0]; int minus = 2100000000; while(1) { if(sum == k) { if(right - left < minus) { answer.clear(); answer.push_back(left); answer.push_back(right); minus = right - left; } sum = sum - sequence[left]; left += 1; continue; } if(sum < k) { if(right == sequence.size()-1) { break; } right += 1; sum = sum + sequence[right]; } else if(sum > k) { sum = sum - sequence[left]; left += 1; } } return answer; } | cs |
투포인터를 사용하면 쉽게 풀 수 있는 문제
728x90
반응형