본문 바로가기
백준 문제풀이

[백준][누적 합] 2559 수열 c++구현

by 꽁이꽁설꽁돌 2024. 3. 27.
728x90
반응형

목차

     

     

    https://www.acmicpc.net/problem/2559

     

    2559번: 수열

    첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기

    www.acmicpc.net

    문제

     

    문제 방향성

    일일히 탐색해서 풀면 시간 초과가 난다. 따라서 누적된 합을 통해 풀어주어야 한다.

     

     

    코드 구현

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    vector<int> v;
    vector<int> v2;
    int main() {
    	int N, K, sum =0, num;
    	cin >> N >> K;
    	for (int i = 0; i < N; i++) {
    		cin >> num;
    		sum += num;
    		v.push_back(sum);
    	}
    	for (int i = K-1; i < N; i++) {
    		if(i == K-1)
    			v2.push_back(v[i]);
    		else {
    			int s = v[i] - v[i - K];
    			v2.push_back(s);
    		}
    		  
    		
    	}
    	cout << *max_element(v2.begin(), v2.end());
    
    }

     

     

     

    반응형