-
부분 합 - 1806백준 2020. 3. 16. 19:37반응형
주어진 수열을 num에 저장하고 누적 합을 psum에 저장했고
그 차이들의 간격을 계산하면서 정답을 도출했습니다.
#include<iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, s; bool flag; cin >> n; cin >> s; //입력받은 수열 저장 int* num = new int[n+1]; num[0] = 0; for (int i = 1; i <= n; i++) { cin >> num[i]; if (num[i] >= s){ cout << 1; return 0; } } //부분 합 저장 int* psum = new int[n + 1]; psum[0] = 0; for (int i = 1; i <= n; i++) { psum[i] = psum[i - 1] + num[i]; } for (int i = 2; i <= n; i++) { int end = n - i; for (int j = 0; j <= end; j++) { if (psum[j + i] - psum[j] >= s) { cout << i; return 0; } } } cout << 0; return 0; }
반응형'백준' 카테고리의 다른 글
[백준] 큐2 - 18258 (0) 2020.07.25 [백준] 1로 만들기 - 1463 (0) 2020.03.16 집합 - 11723 (0) 2020.03.06