사용 언어 - Python3
문제 - 2559번 수열
정답
누적된 숫자들의 합 기억하기 (정답 맞춘 여부 X)
컴퓨터에게 기억하는 방법 알려주기
1. prefix라는 누적합 배열 생성
2. B만큼 떨어져 있는 누적합끼리 빼주기
3. 최대값 구하기
A,B = map(int,input().split())
arr = list(map(int,input().split()))
# 누적합 배열 만들기
prefix = [0 for _ in range(A+1)] # 0 으로 채워진 list 만들기
for i in range(A):
prefix[i+1] = prefix[i] + arr[i]
# 간격B만큼 prefix 차이를 구하기
answer = []
for k in range(B,A+1):
answer.append(prefix[k] - prefix[k-B])
print(max(answer))
레퍼런스
- 정답 깃허브
https://github.com/yyeongeun/codingtest/blob/main/BAEKJOON/2559_%EC%88%98%EC%97%B4.py
'Algorithm > 구현' 카테고리의 다른 글
[백준] 2304번 창고 다각형 (1) | 2023.10.23 |
---|---|
[백준] 1912번 연속합 (0) | 2023.10.23 |
[백준] 2530번 인공지능 시계 (0) | 2023.09.10 |
[프로그래머스 lv 1] 순열 검사 (0) | 2023.06.23 |
[프로그래머스 lv 1] 자릿수 더하기 (0) | 2023.06.23 |
댓글