*문제 출처는 백준에 있습니다.
문제 제목: 수열 / 2559번 (실버 3단계)
문제 사이트: https://www.acmicpc.net/problem/2559
문제 설명

나의 풀이
def solution(n, k, temperature):
answer = 0
left = 1
right = k
# 구간의 합을 구할 배열
dp = [0] * n
# 첫 구간 합을 계산
dp[k - 1] = sum(temperature[:k])
answer = dp[k - 1]
while right < len(temperature):
dp[right] = dp[right - 1] - temperature[left - 1] + temperature[right]
answer = max(answer, dp[right])
right += 1
left += 1
return answer
def main():
# 정수의 개수와 연속된 날짜의 수
n, k = map(int, input().split())
# 온도
temperature = list(map(int, input().split()))
print(solution(n, k, temperature))
main()

※ 알아야 할 것
def solution(n, k, temperature):
current_sum = sum(temperature[:k])
max_sum = current_sum
for i in range(k, n):
current_sum = current_sum - temperature[i - k] + temperature[i]
max_sum = max(max_sum, current_sum)
return max_sum
def main():
n, k = map(int, input().split())
temperature = list(map(int, input().split()))
print(solution(n, k, temperature))
main()
이건 GPT가 짜준 코드인데 배열을 사용하지 않고 간결하게 잘 구성되어있습니다.
'Coding Test > 백준-Python' 카테고리의 다른 글
| 백준 / 숨바꼭질 3 / 13549번 / Python (0) | 2025.04.14 |
|---|---|
| 백준 / 최대 곱 / 1500번 / Python (0) | 2025.04.14 |
| 백준 / N번째 큰 수 / 2075번 / Python (0) | 2025.04.11 |
| 백준 / LCS / 9251번 / Python (0) | 2025.04.10 |
| 백준 / 두 용액 / 2470번 / Python (0) | 2025.04.09 |