반응형
🔺 문제
🔺 코드
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
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int sum = 0;
int[][] rgb = new int[N][3];
int color = 0;
for(int i = 0 ; i < N ; i++) {
st = new StringTokenizer(br.readLine()," ");
rgb[i][0] = Integer.parseInt(st.nextToken());
rgb[i][1] = Integer.parseInt(st.nextToken());
rgb[i][2] = Integer.parseInt(st.nextToken());
}
// 최솟값 누적해 더하기
for(int i = 1 ; i < N ; i++) {
rgb[i][0] += Math.min(rgb[i - 1][1], rgb[i - 1][2]);
rgb[i][1] += Math.min(rgb[i - 1][0], rgb[i - 1][2]);
rgb[i][2] += Math.min(rgb[i - 1][0], rgb[i - 1][1]);
}
// R, G, B 최솟값 누적합 중 최솟값 구하기
System.out.println(Math.min(Math.min(rgb[N - 1][0], rgb[N - 1][1]), rgb[N - 1][2]));
}
}
|
cs |
✅ 해결 아이디어
✔ DP
- R, G, B 3가지 방향으로 접근해 N번째까지 드는 비용 각각 구하고, 이 중 최솟값 찾기
🔺 다른 풀이들
- 입력을 받으면서 동시에 dp 배열을 채우셨다, 점화식 세우는 과정도 굿,,,
- 멋진 점화식 도출 과정..
💬 느낀 점
색깔 값을 어떻게 저장하지.. 했는데 2차원 배열을 쓰면 되는 것이었다..
일단 쫄지 말고 시작해야 하는데,,,
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 최애 문풀 사이트.. 선생님의 풀이를 참고하였다..
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 5073번: 삼각형과 세 변 (0) | 2023.05.31 |
---|---|
[백준/JAVA] 23971번: ZOAC 4 (0) | 2023.05.31 |
[백준/JAVA] 1912번: 연속합 (0) | 2023.05.30 |
[백준/JAVA] 9461번: 파도반 수열 (0) | 2023.05.30 |
[백준/JAVA] 1904번: 01타일 (1) | 2023.05.30 |