안선생의 개발 블로그
C++ 1149 RGB거리 본문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include<iostream>
#include <string>
#include <vector>
#include<algorithm>
using namespace std;
int main()
{
int n; cin >> n;
vector<vector<int>> home(n + 2);
vector<vector<int>> dp(n+2, vector<int>(n+2, 0));
for (int i = 1; i <= n; i++)
{
for (int j = 0; j < 3; j++)
{
int a; cin >> a;
home[i].push_back(a);
}
}
dp[1][0] = home[1][0];
dp[1][1] = home[1][1];
dp[1][2] = home[1][2];
for (int i = 2; i <= n; i++)
{
for (int j = 0; j < 3; j++)
{
if (j == 0)
{
int m = min(dp[i - 1][1], dp[i - 1][2]);
dp[i][j] = home[i][j] + m;
}
else if (j == 1)
{
int m = min(dp[i - 1][0], dp[i - 1][2]);
dp[i][j] = home[i][j] + m;
}
if (j == 2)
{
int m = min(dp[i - 1][0], dp[i - 1][1]);
dp[i][j] = home[i][j] + m;
}
}
}
cout << min({ dp[n][0], dp[n][1], dp[n][2] });
return 0;
}
|
cs |
https://www.acmicpc.net/problem/1149
1149번: RGB거리
첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나
www.acmicpc.net
'백준' 카테고리의 다른 글
C++ 14501 퇴사 (0) | 2023.04.02 |
---|---|
C++ 1932 정수 삼각형 (0) | 2023.03.25 |
C++ 11726 2xn 타일링 (0) | 2023.03.22 |
C++ 9625 BABBA (0) | 2023.03.21 |
C++ 1032 명령 프롬프트 (0) | 2023.03.09 |