Skip to content

Commit b96ecdf

Browse files
committed
[BOJ] #11066. 파일 합치기 / 골드3 / 100분 / 실패, 복습 필수
1 parent ebe1699 commit b96ecdf

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
# 테스트 케이스 입력
5+
T = int(input())
6+
7+
for _ in range(T):
8+
# 입력 처리
9+
K = int(input())
10+
files = [0] + list(map(int, input().split()))
11+
prefix_sum = [0] * (K + 1)
12+
13+
# 누적합 계산
14+
for i in range(1, K + 1):
15+
prefix_sum[i] = prefix_sum[i - 1] + files[i]
16+
17+
# DP 배열 초기화
18+
dp = [[0] * (K + 1) for _ in range(K + 1)]
19+
20+
# DP 계산
21+
for count in range(1, K): # 합치는 파일 개수
22+
for start in range(1, K - count + 1): # 시작 인덱스
23+
end = start + count
24+
MIN = sys.maxsize
25+
for mid in range(start, end): # 중간 분할점
26+
MIN = min(MIN, dp[start][mid] + dp[mid + 1][end])
27+
dp[start][end] = MIN + prefix_sum[end] - prefix_sum[start - 1]
28+
29+
# 결과 출력
30+
print(dp[1][K])

0 commit comments

Comments
 (0)