ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 부분 합 - 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

    댓글

Designed by Tistory.