1일1알

백준 15565번 귀여운 라이언 C++ 본문

알고리즘

백준 15565번 귀여운 라이언 C++

영춘권의달인 2022. 11. 15. 10:09

https://www.acmicpc.net/problem/15565

 

15565번: 귀여운 라이언

꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의

www.acmicpc.net

 

슬라이딩 윈도우

큐를 이용하였다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <list>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <limits.h>

using namespace std;
using int64 = long long;

int n, k;
vector<int> v;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    cin >> n >> k;
    v = vector<int>(n);
    for (int i = 0; i < n; i++) {
        cin >> v[i];
    }
    queue<int> q;
    bool ans = false;
    int len = 987654321;
    for (int i = 0; i < n; i++) {
        if (v[i] == 2) continue;
        if (q.size() == k - 1) {
            int lastIdx = q.front();
            q.pop();
            ans = true;
            len = min(len, i - lastIdx + 1);
        }
        q.push(i);
    }
    if (ans) cout << len;
    else cout << -1;
}

'알고리즘' 카테고리의 다른 글

백준 16719번 ZOAC C++  (0) 2022.11.17
백준 8911번 거북이 C++  (0) 2022.11.16
백준 15591번 MooTube (Silver) C++  (0) 2022.11.14
백준 12919번 A와 B 2 C++  (0) 2022.11.13
백준 13164번 행복 유치원 C++  (0) 2022.11.12