[BOJ] 2559λ² | μμ΄ (C++)
2023. 8. 27. 17:57γCoding Test/BOJ
πλ¬Έμ 보λ¬κ°κΈ°
π§π»νμ΄ κ³Όμ
λ€νΈμν¬μμ 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
λ°μν
'Coding Test > 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 |