https://www.acmicpc.net/problem/22857
두 포인터를 사용해서 문제 해결을 하면 된다.
def find(N, K, S):
l = 0
max_length = 0
removed = 0 # 현재 구간 [l..r] 안의 홀수 개수
for r in range(N):
if S[r] % 2 != 0:
removed += 1
while removed > K:
if S[l] % 2 != 0:
removed -= 1
l += 1
sub = (r - l + 1) - removed
max_length = max(max_length, sub)
return max_length
# 입력 처리
N, K = map(int, input().split())
S = list(map(int, input().split()))
# 결과 출력
print(find(N, K, S))
'알고리즘 문제풀이' 카테고리의 다른 글
간식 파티 [백준 20162] (0) | 2025.01.20 |
---|---|
The Bale Tower [백준 6221] (0) | 2025.01.18 |
회의실 배정3[백준 19622] (0) | 2025.01.17 |
가장 큰 감소 부분 수열[백준 17216] (0) | 2025.01.16 |
회의실 배정2 [백준 19621] (0) | 2025.01.16 |