DP공부를 하던 중 처음으로 실버에서 막혔다. 약 1시간정도 고민했는데 못풀고 구글링을 해보니 구글에도 파이썬 풀이는 나오지 않더라 .. 결국 자바 메커니즘 보고 해결! 한 번 안보이면 끝까지 안보이더라ㅋㅋㅋㅠㅠ 혹시 나같은 사람을 위해 벨로그에 풀이를 남긴다!
< 풀이 >
n, k = map(int, input().split())
s = [0] + list(map(int, input().split()))
dp = [[0 for _ in range(k+1)] for _ in range(n+1)]
for i in range(1, n+1):
s[i] %= 2
for j in range(k+1):
if s[i] == 0: #짝수일 때
dp[i][j] = dp[i-1][j] + 1
if j != 0 and s[i]: #홀수일 때
dp[i][j] = dp[i-1][j-1]
result = []
for i in dp:
result.append(i[k])
print(max(result))
도움이 많이 되었습니다! 감사합니다.