14465. 소가 길을 건너간 이유 5
- 내 풀이
누적합
- 고장난거 0 고장안난거 1로 생각하고 보다가 누적합인것 파악
- zero[i] : i번째까지의 0의 갯수
- zero[i]-zero[i-k]
- : n에서부터 k만큼의 범위를 확인 → 안에 0이 몇개 인지
- 그 중에 최솟값이 고쳐야할 최소 갯수
n,k,b=map(int,input().split())
nums=[1]*(n+1)
for _ in range(b):
x=int(input())
nums[x]=0
zero=[0]*(n+1)
for i in range(1,n+1):
if nums[i]==0:
zero[i]=zero[i-1]+1
else:
zero[i]=zero[i-1]
answer=float('inf')
for i in range(n,k-1,-1):
answer=min(answer, zero[i]-zero[i-k])
print(answer)
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준][다익스트라] 14938. 서강그라운드 (0) | 2025.02.07 |
|---|---|
| [백준][DP][배낭문제] 할로윈의 양아치 (0) | 2025.02.04 |
| [백준][DP] 동전 2 (0) | 2025.01.27 |
| [백준] 2623. 음악프로그램 (0) | 2025.01.24 |
| [백준][DFS] 2668.숫자고르기 (0) | 2025.01.21 |