문제가 없는 신호등은 0, 고장난 신호등은 1로 기록하며 배열을 만든다.
k 개의 연속된 신호등의 숫자의 합을 구해보면 그 결과값이 수리해야 하는 신호등의 개수이므로 이 중에서 최소값을 찾아서 출력하면 된다.
import sys
def main():
n, k, b = map(int, sys.stdin.readline().split())
light = [0]*n
for _ in range(b):
a = int(sys.stdin.readline())
light[a-1] = 1
start = 0
end = k
temp = 0
for i in range(k):
temp += light[i]
answer = temp
while True:
if end == n:
break
temp = temp - light[start] + light[end]
start += 1
end += 1
answer = min(temp, answer)
print(answer)
return
if __name__=="__main__":
main()
'Koala - 10기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준 / Python] 17609 회문 (0) | 2023.03.26 |
---|---|
[백준/Python] 21610 마법사 상어와 비바라기 (0) | 2023.03.26 |
[백준/C++] 2230번 : 수 고르기 (0) | 2023.03.25 |
[백준/python] 치킨 배달 (0) | 2023.03.25 |
[백준/Python] 2467 : 용액 (0) | 2023.03.24 |