π¦1806: Subtotal
[μκ³ λ¦¬μ¦ νμ΄] κ°λκ·
Reviewed by Kade Kang (devkade12@gmail.com)
Reviewed:: 2024-02-19
λ¬Έμ νμΈνκΈ°
νμ΄
- μ΄μ€ for λ¬Έμ μ¬μ©ν κ²½μ° sum μ μ²μλΆν° μλ‘ λν΄κ°λ©΄μ ꡬν΄μΌ νκΈ° λλ¬Έμ μκ°μ΄κ³Όκ° λ°μνλ€.
- λλ¬Έμ sum, λμ ν©μ κ°±μ ν΄μ€μΌ νλ€.
- start, end κ° 0 λΆν° μμν΄μ start λ end κΉμ§, end λ N κΉμ§λ‘ λ²μλ₯Ό μ§μ νλ€.
- μ΄ μμμ λͺ©νκ°κΉμ§ λλ¬νμ§ μλλ€λ©΄ end λ₯Ό λλ € λͺ©νκ°μ λκΈΈ μ μλλ‘ λ§λ€κ³ λͺ©νκ°μ λλ¬νλ©΄ start λ₯Ό λλ € μ΅μ λ²μλ₯Ό μ°Ύμ μ μλλ‘ νλ€.
#include <iostream>
#define endl '\n'
using namespace std;
int N, S;
int arr[100001];
int res, sum=0;
void Input(){
cin >> N >> S;
for(int i=0; i<N; i++){
cin >> arr[i];
}
}
void Solution(){
res = INT32_MAX;
sum = arr[0];
int start = 0;
int end = 0;
while(start <= end && end < N){
if(sum >= S) res = min(res, end-start+1);
if(sum < S){
end++;
sum += arr[end];
}
else{
sum -= arr[start];
start++;
}
}
if(res == INT32_MAX) cout << 0 << endl;
else cout << res << endl;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
Input();
Solution();
return 0;
}