토니의 연습장

누적합 배열 예제 본문

Algorithm/Ch 3. 응용 자료구조

누적합 배열 예제

bellmake 2024. 9. 18. 16:31

https://www.acmicpc.net/problem/2559

N, K = list(map(int, input().split()))

A = list(map(int, input().split()))

# 누적합
psum = [0]*N
psum[0] = A[0]
for i in range(1,N):
    psum[i] = psum[i-1]+A[i]
    
# 연속된 K일 온도합
temp_sum = []
for i in range(0,N-K+1):
    # i ~ i+K-1
    if i==0:
        sum=psum[i+K-1]
    else:
        sum=psum[i+K-1]-psum[i-1]
        
    temp_sum.append(sum)

print(max(temp_sum))

 

https://www.acmicpc.net/problem/14465

 

N, K, B = list(map(int, input().split()))

check = [0]*N

for _ in range(B):
    id = int(input())
    check[id-1] = 1
    
psum = [0]*N
psum[0] = check[0]
for i in range(1, N):
    psum[i] = psum[i-1] + check[i]
    
need = []
for i in range(0, N-K+1): # 0부터 N-K번까지 탐색
    # i ~ i+K-1
    if i==0:
        num = psum[i+K-1]
    else:
        num = psum[i+K-1]-psum[i-1]
        
    need.append(num)
    
print(min(need))

'Algorithm > Ch 3. 응용 자료구조' 카테고리의 다른 글

해쉬 예제  (1) 2025.01.04
우선 순위 큐 예제  (0) 2025.01.04
그래프 예제  (1) 2025.01.04
트리 예제  (1) 2025.01.04