Inflearn brand logo image
Inflearn brand logo image
채널톡 아이콘

인프런 커뮤니티 질문&답변

Kouga님의 프로필 이미지

작성한 질문수 17

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2559번 문제 왜 틀렸는지 모르겠습니다.

작성

·

193

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

주석달았습니다. 참고 부탁드립니다.

#include <bits/stdc++.h>


using namespace std;

int N,K;
int a[100004];
int psum[100004];
int sum[100004];
int Max;

int main()
{
	cin >> N >> K;

	for (int i = 0; i < N; ++i) {
		cin >> a[i];
	} 
	psum[0] = a[0];
	for (int i = 1; i < N; ++i) {
		psum[i] = psum[i - 1] + a[i];
	}
	for (int i = K-1; i < N; ++i) {
		//이렇게 하면 psum[-1]이 나오지 않을까요? 
		sum[i] = psum[i] - psum[i - K];
	}

	for (int i = 0; i < N; ++i) {
		if (sum[i] > Max) {
			Max = sum[i];
		}

	}

	cout << Max;

}
Kouga님의 프로필 이미지
Kouga
질문자

psum공식에서 for문을 돌리실때

for(int i=1; i<=N; 으로 N을 포함하시던데,

그러면 a[N]이 생겨버리지 않나요??

큰돌님의 프로필 이미지
큰돌
지식공유자

음.. 저는 a[N]이 생기도록 만드는 것을 추천드리고 있습니다. 또한 0부터가 아닌 1부터 시작되게 하는 것을 추천드리고 있는데요. 강의 다시한번 확인 부탁드립니다.