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
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 연습장
{
internal class _1149_boj
{
public void boj_1149()
{
int N = int.Parse(Console.ReadLine());
int[,] dp = new int[N + 1, 3];
dp[0, 0] = 0;
dp[0, 1] = 0;
dp[0, 2] = 0;
for (int i = 1; i <= N; i++)
{
int[] input = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
dp[i, 0] = input[0] + Math.Min(dp[i - 1, 1], dp[i - 1, 2]);
dp[i, 1] = input[1] + Math.Min(dp[i - 1, 0], dp[i - 1, 2]);
dp[i, 2] = input[2] + Math.Min(dp[i - 1, 0], dp[i - 1, 1]);
}
int res = int.MaxValue;
for (int i = 0; i < dp.GetLength(1); i++)
{
res = Math.Min(dp[N, i], res);
}
Console.WriteLine(res);
}
}
}
|
cs |
i번째 집의 색은 i - 1번째, i + 1번째 집의 색과 다르기만 하면 색을 어떻게 사용하던지 상관이 없다.
이걸 이용해서 코드를 짜주었다.
'다이나믹 프로그래밍 한접시' 카테고리의 다른 글
[백준] 1932번: 정수 삼각형 [C#] (1) | 2024.04.25 |
---|---|
[백준] 11659번: 구간 합 구하기 4 [Java] (0) | 2024.04.24 |
[백준] 9095번: 1, 2, 3 더하기 [C#] (0) | 2024.04.16 |
[백준] 1463번: 1로 만들기 [C#] (0) | 2024.04.15 |
[백준] 14501번: 퇴사 [C#] (0) | 2024.04.14 |