반응형
https://leetcode.com/problems/minimum-value-to-get-positive-step-by-step-sum/description/
구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
정답 value, 누적값 acc를 선언 후 각각 0으로 초기화합니다.
📔 풀이과정
nums의 원소에 대해 loop를 수행합니다.
1. acc에 현재값을 더합니다.
2. 현재 누적값이 1보다 작다면 value값을 1 - acc(조정이 필요한 구간까지의 합)값만큼 더해서 조정해줍니다. 이후 acc는 다시 1로 초기화됩니다.
3. nums의 값이 모두 양수라면 최소 start value인 1을 value에 저장합니다.
📔 정답 출력 | 반환
value를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
int minStartValue(vector<int>& nums) {
int value = 0;
int acc = 0;
for(auto n : nums) {
acc += n;
if (acc < 1) {
value += 1 - acc;
acc = 1;
}
}
if(!value) value = 1;
return value;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.