본문 바로가기
전공공부/코딩테스트

(c++) 백준 "1106) 파일 합치기"

by 시아나 2022. 5. 31.

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