Aracade Intro #37 arrayMaxConsecutiveSum. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
Q.
Given array of integers, find the maximal possible sum of some of its k consecutive elements.
주어진 정수에서 길이값 k 의 수만큼 연속된 길이의 내용물들의 합 최대값을 구하여라
e.g.
Input -> inputArray = [2, 3, 5, 1, 6] and k = 2
Output -> arrayMaxConsecutiveSum(inputArray, k) = 8
All possible sums of 2 consecutive elements are:
2 + 3 = 5;
3 + 5 = 8;
5 + 1 = 6;
1 + 6 = 7.
Thus, the answer is 8.
k = 2 이므로 두개씩 묶어서, 최대값
// Process
// 1. Input integer vector and k
// 2. Iterate from begin to end-(k-1)
// 2.1. check if sum of i to i+k is bigger than answer sum
// 2.1.1. if so - swap sum
// 2.1.2. if not = pass
// 3. Return sum
//
//처리과정
//1. 정수배열과 묶을 길이 k 값을 입력받는다.
//2. 시작부터 끝-k-1 까지 반복한다.
// 2.1. 기존 sum이 i 부터 k 길이까지의 합보다 작으면
// 2.1.1. sum을 바꾼다.
//3. sum을 반환한다.
Code.. Lemme see code!!!!!
코드.. 코드를 보자!!!!!
int arrayMaxConsecutiveSum(std::vector<int> inputArray, int k) {
int answer = 0;
vector<int>::iterator inputArray_Iter = inputArray.begin();
int sum = 0;
while (inputArray_Iter < inputArray.end() - (k-1))
{
if (inputArray_Iter == inputArray.begin())
{
for (int i = 0; i < k; ++i)
{
sum += *(inputArray_Iter + i);
}
}
else
{
sum -= *(inputArray_Iter - 1);
sum += *(inputArray_Iter + (k-1));
}
if (sum > answer)
{
answer = sum;
}
++inputArray_Iter;
}
return answer;
}
Something else you might like..
2018/12/04 - [Life/Health care] - Magnesium 마그네슘 usage/side effects/dosage 용법/효능/부작용
2018/12/03 - [Life/Health care] - Lecithin 레시틴 usage/side effects/dosage 효능/부작용/용법
2018/12/02 - [Life/Health care] - Maca 마카 usage/side effects/dosage 효능/부작용/용법
2018/11/29 - [Life/Health care] - L-Arginine 아르기닌 usage/side effects/dosage 효능/부작용/성인,소아 용법