-Code
n, k = map(int, input().split())
nums = list(map(int, input().split()))
right = 0
cnt, jump = 0, 0
result = 0
for left in range(n):
while jump <= k and right < n:
if nums[right] % 2 == 0:
cnt += 1
result = max(result, cnt)
else:
jump += 1
right += 1
if nums[left] % 2 == 0:
cnt -= 1
else:
jump -= 1
print(result)
처음에 이해는 됐으나 구현에 있어서 if문을 너무 꼬이게 생각을 해서 틀렸습니다. 그래서 어디가 틀렸는지 찾아보고 조금씩 고치다 보니 while문 조건과 left부분을 생각을 안 해서 한번 더 틀리고 해결을 했습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 1940번 주몽 (0) | 2022.05.10 |
---|---|
[백준/파이썬] 2018번 수들의 합 5 (0) | 2022.05.10 |
[백준/파이썬] 18868번 멀티버스 Ⅰ (0) | 2022.05.09 |
[백준/파이썬] 18512번 점프 점프 (0) | 2022.05.09 |
[백준/파이썬] 2160번 그림 비교 (0) | 2022.05.09 |