상세 컨텐츠

본문 제목

백준 3078 좋은 친구 혼내주기

혼내주기

by lazz 2021. 8. 1. 22:43

본문

반응형

 

슬라이딩 윈도우 문제. 큐에다가 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;
}
반응형

관련글 더보기

댓글 영역