728x90
๐๋ฌธ์ ๋ณด๋ฌ๊ฐ๊ธฐ
๐ง๐ปํ์ด ๊ณผ์
๋คํธ์ํฌ์์ TCP ํ๋กํ ์ฝ์ ๊ณต๋ถํ ๋ ๋ดค์๋ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ(Sliding window) ๊ฐ๋ ์ ์ ์ฉํ์ฌ ํ ์ ์์ต๋๋ค.
- ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๊ฐ ์ซ์๋ค์ ๋ฐฐ์ด(arr)์ ์ ์ฅํ๋, [0, K - 1]๊น์ง์ ํฉ๊ณ๋ฅผ ๋ณ๋์ ๋ณ์(sum)์ ์ ์ฅํด๋ก๋๋ค.
- int start = 0, last = K๋ก ์ธ๋ฑ์ค ๋ณ์๋ฅผ ๋ก๋๋ค.
- ์ ๋ต ๋ณ์(maxSum)์ 1๋ฒ์์ ๊ตฌํ sum ๋ณ์ ๊ฐ์ผ๋ก ์ด๊ธฐํํฉ๋๋ค.
- last < K๊ฐ ๋ง์กฑํ ๋, ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค.
- sum -= arr[start++];
- sum += arr[last++];
- maxSum = max(maxSum, sum);
โ๏ธ์์ค ์ฝ๋ ๋ฐ ๊ฒฐ๊ณผ
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cout.tie(NULL); cin.tie(NULL);
int N, K;
cin >> N >> K;
// 1. [0, K - 1]๊น์ง ํฉ๊ณ ๊ตฌํ๊ธฐ
int sum = 0;
vector<int> sequence(N);
for (int i = 0; i < N; i++)
{
cin >> sequence[i];
if (i < K)
sum += sequence[i];
}
// 2. start, last ์ธ๋ฑ์ค๋ฅผ ํตํด, ํ ์นธ์ฉ ์ ์ง
int maxSum = sum;
for (int start = 0, last = K; last < N; start++, last++)
{
sum -= sequence[start];
sum += sequence[last];
maxSum = max(maxSum, sum);
}
cout << maxSum;
return 0;
}
728x90
๋ฐ์ํ
'๐คAlgorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 25682๋ฒ | ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ 2 (C++) (0) | 2023.08.29 |
---|---|
[BOJ] 11660๋ฒ | ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5 (C++) (0) | 2023.08.29 |
[BOJ] 16139๋ฒ | ์ธ๊ฐ-์ปดํจํฐ ์ํธ์์ฉ (C++) (1) | 2023.08.27 |
[BOJ] 11659๋ฒ | ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4 (C++) (0) | 2023.08.27 |
[BOJ] 10844๋ฒ | ์ฌ์ด ๊ณ๋จ ์ (C++) (0) | 2023.08.26 |