๋ฐ์ํ
๋ฐ๋ก 74% https://www.acmicpc.net/board/view/75765
5 2
100 -1 1 -100 -100
# ๋ต : 99
๋ฌธ์ ๋งํฌ :
https://www.acmicpc.net/problem/2559
2559๋ฒ: ์์ด
์ฒซ์งธ ์ค์๋ ๋ ๊ฐ์ ์ ์ N๊ณผ K๊ฐ ํ ๊ฐ์ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ฒซ ๋ฒ์งธ ์ ์ N์ ์จ๋๋ฅผ ์ธก์ ํ ์ ์ฒด ๋ ์ง์ ์์ด๋ค. N์ 2 ์ด์ 100,000 ์ดํ์ด๋ค. ๋ ๋ฒ์งธ ์ ์ K๋ ํฉ์ ๊ตฌํ๊ธฐ
www.acmicpc.net
ํ์ด
- K๋ฒ ์ ๊น์ง๋, ์ฐ์๋ ๋ฐฐ์ด์ ํฉ์ dp[i]์ ์ ์ฅํ๊ณ ,
- K+1 ๋ฒ ๋ถํฐ๋, dp[i-1]์์ ๋งจ ์ฒ์ ๋ค์ด์จ degrees[i - K]๋ฅผ ๋นผ๊ณ ์ง๊ธ degrees[i]๋ฅผ ๋ํ๋ค.
# ๋ ๊ฐ์ ์ ์ N๊ณผ K
# N : ์จ๋ ์ธก์ ํ ์ ์ฒด ๋ ์ง์ ์
# K : ์ฐ์์ ์ธ ๋ ์ง์ ์
N, K = map(int, input().split())
degrees = list(map(int, input().split()))
dp = [None for _ in range(N)]
dp[0] = degrees[0]
for i in range(1, N):
if i < K:
dp[i] = dp[i - 1] + degrees[i]
else:
dp[i] = dp[i - 1] - degrees[i - K] + degrees[i]
result = max(dp[K-1:])
print(result)
๋ฐ์ํ
'๐ค ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[leetcode] 49. Group Anagrams ํ์ด, ํด์ค (python) (2) | 2023.10.14 |
---|---|
์๊ณ ๋ฆฌ์ฆ ํ์ด์์. neetcode ์ฐธ๊ณ ํด์ leetcode ์ค๋นํ๊ธฐ (leethub) (0) | 2023.09.28 |
baekjoon. 14890 ๊ฒฝ์ฌ๋ก [Gold III][python] (0) | 2023.08.13 |
baekjoon. 11729 ํ๋ ธ์ด ํ ์ด๋ ์์ [Silver I][python] (0) | 2023.07.12 |
baekjoon. 15486 ํด์ฌ 2 [Gold V][python] (0) | 2023.07.06 |