https://www.acmicpc.net/problem/11066
11066번: 파일 합치기
소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본
www.acmicpc.net
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <limits.h>
using namespace std;
int main() {
int T; cin >> T;
for (int t = 1; t <= T; t++) {
int N; cin >> N;
int cost[502][502] = { 0 };
int sum[502] = { 0 };
vector<int> list = { 0 };
for (int i = 1; i <= N; i++) {
int n; cin >> n;
list.push_back(n);
sum[i] = sum[i - 1] + n;
}
for (int k = 1; k < N; k++) {
for (int i = 1; i <= N - k; i++) {
int j = i + k;
cost[i][j] = INT_MAX;
for (int f = i; f < j; f++) {
int temp = cost[i][f] + cost[f + 1][j] + sum[j] - sum[i - 1];
if (temp < cost[i][j]) {
cost[i][j] = temp;
}
}
}
}
cout << cost[1][N] << endl;
}
return 0;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 백준 "10250) ACM 호텔" (0) | 2022.06.02 |
---|---|
(c++) 프로그래머스 "베스트앨범" (0) | 2022.05.31 |
(c++) 1209) Sum (0) | 2022.05.28 |
(c++) SWEA "1215) 회문1" (0) | 2022.05.28 |
(c++) SWEA "2806) N-Queen" (0) | 2022.05.28 |