-
[14465] 소가 길을 건너간 이유 5BOJ 2021. 11. 18. 21:37
https://www.acmicpc.net/problem/14465
14465번: 소가 길을 건너간 이유 5
첫 줄에 N, K, B (1 ≤ B,K ≤ N)가 주어진다. 그 다음 B줄에는 고장난 신호등의 번호가 하나씩 주어진다.
www.acmicpc.net
<문제>
선형에서의 슬라이딩 윈도우, 입력으로 들어온 인덱스를 chk[input]=true, 윈도우의 초기설정을 해주고
right<=n일때까지 구간내 chk가 true인 개수를 score, ans를 score와 최소로 갱신하며 진행한다.
<소스코드>
123456789101112131415161718192021#include <bits/stdc++.h>using namespace std;int n, k, b, ans = 1e9;bool chk[100001];int main(void) {cin >> n >> k >> b;while (b--) {int x;cin >> x;chk[x] = true;}int i, cnt = 0, l = 1, r = k;for (i = 1; i <= k; i++) cnt += chk[i];while (r <= n) {ans = min(cnt, ans);cnt -= chk[l++];cnt += chk[++r];}cout << ans;return 0;}cs 'BOJ' 카테고리의 다른 글
[14852] 타일 채우기 3 (0) 2021.11.19 [14889] 스타트와 링크 (0) 2021.11.18 [13977] 이항 계수와 쿼리 (0) 2021.11.18 [13565] 침투 (0) 2021.11.18 [2424] 부산의 해적 (0) 2021.11.17