오늘의 알고리즘
[C++] 백준 20922 겹치는 건 싫어
하늘하늘 .
2022. 6. 15. 00:27
#include <iostream>
#include <algorithm>
#include <vector>
int val[200001] = {};
int main()
{
int N = 0;
int K = 0;
std::cin >> N >> K;
std::vector<int> vec(N, 0);
int iStart = 0;
int iEnd = 0;
int iMax = 0;
for (int i = 0; i < N; ++i)
{
std::cin >> vec[i];
}
while (iStart <= iEnd)
{
if (iEnd == N)
break;
if (val[vec[iEnd]] >= K)
--val[vec[iStart++]];
else
{
iMax = std::max(iMax, iEnd - iStart + 1);
++val[vec[iEnd++]];
}
}
std::cout << iMax;
return 0;
}
투 포인터, 값과 크기를 나눠서 찾는 게 중요한 문제