[μΈνλ° C++] 22. μ¨λμ μ΅λκ°(1μ°¨μ λ°°μ΄ κ΅¬κ°ν©) (μ νμκ° 1μ΄)
λ§€μΌ μμΉ¨ 9μμ νκ΅μμ μΈ‘μ ν μ¨λκ° μ΄λ€ μ μμ μμ΄λ‘ μ£Όμ΄μ‘μ λ, μ°μμ μΈ λ©°μΉ λμμ μ¨λμ ν©μ΄ κ°μ₯ ν° κ°μ μμλ³΄κ³ μ νλ€.
μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ΄ 10μΌ κ°μ μ¨λκ° μ£Όμ΄μ‘μ λ, 3 -2 -4 -9 0 3 7 13 8 -3 λͺ¨λ μ°μμ μΈ μ΄νκ°μ μ¨λμ ν©μ λ€μκ³Ό κ°λ€.
μ΄λ, μ¨λμ ν©μ΄ κ°μ₯ ν° κ°μ 21μ΄λ€.
λ§€μΌ μΈ‘μ ν μ¨λκ° μ μμ μμ΄λ‘ μ£Όμ΄μ‘μ λ, μ°μμ μΈ λ©°μΉ λμμ μ¨λμ ν©μ΄ κ°μ₯ ν° κ°μ κ³μ°νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫 μ§Έ μ€μλ λ κ°μ μ μ Nκ³Ό Kκ° ν κ°μ 곡백μ μ¬μ΄μ λκ³ μμλλ‘ μ£Όμ΄μ§λ€.
첫 λ²μ§Έ μ μ Nμ μ¨λλ₯Ό μΈ‘μ ν μ 체 λ μ§μ μμ΄λ€. Nμ 2μ΄μ 100,000 μ΄νμ΄λ€.
λ λ²μ§Έ μ μ Kλ ν©μ ꡬνκΈ° μν μ°μμ μΈ λ μ§μ μμ΄λ€. Kλ 1κ³Ό N μ¬μ΄μ μ μμ΄λ€.
λ μ§Έ μ€μλ λ§€μΌ μΈ‘μ ν μ¨λλ₯Ό λνλ΄λ Nκ°μ μ μκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. μ΄ μλ€μ λͺ¨λ -100μ΄μ 100μ΄νμ΄λ€.
μΆλ ₯
첫 μ§Έ μ€μλ μ¨λμ μμ΄μμ μ°μμ μΈ KμΌμ μ¨λμ ν©μ΄ μ΅λκ° λλ κ°μ μΆλ ₯νλ€.
1νΈ (μ±κ³΅)
#include <iostream>
using namespace std;
int main(void){
//freopen("input.txt", "rt", stdin);
int n, k, value, hap = 0;
int max = -2147000000;
cin >> n >> k;
int v[n];
for(int i = 0; i < n; ++i){
cin >> value;
v[i] = value;
}
for(int i = 0; i < n - 1; ++i){
hap = v[i] + v[i+1];
if(hap > max){
max = hap;
}
}
cout << max;
return 0;
}
2νΈ(κ°μ νμ΄)
1. vector μ¬μ©
2. sum = a[0] + a[1] π μ΄ν sum = sum + (a[2] - a[0]), kλ§νΌ μ¦κ°ν΄μ λ°λ³΅
#include <iostream>
#include <vector>
using namespace std;
int main(void){
freopen("input.txt", "rt", stdin);
int n, k, sum = 0, max;
cin >> n >> k;
vector<int> a(n);
for(int i = 0; i < n; ++i){
cin >> a[i];
}
for(int i = 0; i < k; ++i){
sum += a[i];
}
max = sum;
for(int i = k; i < n; ++i){
sum = sum + (a[i] - a[i-k]);
if(sum > max) max = sum;
}
cout << max;
return 0;
}