Koala - 10기/코딩테스트 준비 스터디
[백준/python] #14465 : 소가 길을 건너간 이유
kjyook
2023. 3. 26. 13:57
문제가 없는 신호등은 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()