슬라이딩 윈도우 문제. 큐에다가 k+1개의 이름 길이를 유지하면서 갯수를 세면 된다.
개인적으로 쌍이라는 표현이 조금 헷갈렸는데, 3명의 이름이 모두 같으면 3쌍이라고 생각하고 풀면 된다.
ans를 롱롱이를 안써서 조금 헤맸다.
#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(0), cin.tie(0)
using namespace std;
int cnt[300001];
int n, k;
void input() {
fastio;
cin >> n >> k;
}
int main() {
input();
long long ans = 0;
queue<string> q;
string s;
for(int i = 0; i < n; ++i) {
if(i > k) {
cnt[q.front().size()]--;
q.pop();
}
cin >> s;
cnt[s.size()]++;
q.push(s);
if(cnt[s.size()] > 1) {
ans += cnt[s.size()]-1;
}
}
cout << ans;
}
백준 20440 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 혼내주기 (0) | 2021.08.01 |
---|---|
백준 1662 압축 혼내주기 (0) | 2021.08.01 |
백준 2252 줄 세우기 혼내주기 (0) | 2021.08.01 |
백준 1766 문제집 혼내주기 (0) | 2021.08.01 |
백준 1516 게임 개발 혼내주기 (0) | 2021.08.01 |
댓글 영역