Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- DFS
- 다이나믹 프로그래밍
- 그리디 알고리즘
- 문자열
- c++
- 다익스트라
- ue5
- 브루트포스
- Unreal Engine 5
- 누적 합
- BFS
- 우선순위 큐
- 정렬
- 알고리즘
- 그래프
- XR Interaction Toolkit
- 재귀
- 유니온 파인드
- Team Fortress 2
- 스택
- 구현
- 백준
- 자료구조
- 수학
- VR
- 트리
- 유니티
- 시뮬레이션
- 투 포인터
- 백트래킹
Archives
- Today
- Total
1일1알
백준 15565번 귀여운 라이언 C++ 본문
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 |