티스토리 뷰

백준

백준 소스코드 [C++] 1149 RGB거리

Hani_Levenshtein 2021. 1. 4. 17:32

www.acmicpc.net/problem/1149

 

1149번: RGB거리

첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나

www.acmicpc.net

백준 소스코드 [C++] 1149 RGB거리

#include <iostream>
#include <algorithm>
#include <queue>
#include <string.h>
#include <limits.h>
#include <vector>
#include <math.h>
#include <stack>
#include <bitset>
#include <string>
#include <set>
#define all(v) v.begin(), v.end()
#define pii pair<int,int>
#define make_unique(v) v.erase(unique(v.begin(), v.end()), v.end())
typedef long long ll;
using namespace std;
int arr[3][1001];
int res[3][1001];
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n;
	cin >> n;
	for (int i = 1;i <= n;i++) cin >> arr[0][i] >> arr[1][i] >> arr[2][i];
	for (int i = 1;i <= n;i++) {
		res[0][i] = min(res[1][i - 1], res[2][i - 1]) + arr[0][i];
		res[1][i] = min(res[0][i - 1], res[2][i - 1]) + arr[1][i];
		res[2][i] = min(res[0][i - 1], res[1][i - 1]) + arr[2][i];
	}
	cout << min({ res[0][n],res[1][n] ,res[2][n] });

	return 0;
}
댓글