https://www.acmicpc.net/problem/20922
1. 전체코드
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, k,ret,temp;
vector<ll> v;
int vis[1000000 + 1]; //해당숫자 방문했는지 여부
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n>>k;
for (int i = 0; i < n; ++i) {
cin >> temp;
v.push_back(temp);
}
//v.push_back(0);
if (n == 1) {
cout << 1;
return 0;
}
ll e = 0, ret = 0;
for (int s = 0; s < n; ++s) {
//같은원소가 k개 이하인동안
while (e < n && vis[v[e]]<k) {
vis[v[e]]++;
e++;
}
ret = max(ret, e - s);
vis[v[s]]--; //다음반복문위해 시작부분 숫자 카운팅--
}
cout << ret;
}
'Algorithm > 투포인터' 카테고리의 다른 글
백준 16472 고냥이 c++ // 투포인터, 매개변수탐색, 투포의 핵심아이디어, set 존재여부 조사하는법 (0) | 2024.04.22 |
---|---|
백준 2470 두용액 c++ // 투포인터는 st,en중 누구를 움직일지 결정하라 (0) | 2023.12.01 |
백준 22862 c++ // 투포인터 응용방법(db 이용) (0) | 2023.11.17 |
백준 13144 List Of Unique Numbers c++ // 투포인터, 배열활용 (0) | 2023.11.14 |
백준 2003 수들의합2 c++ // 투포인터 정석풀이 (0) | 2023.11.13 |