Skip to content

Commit 7c38750

Browse files
committed
[Silver I] Title: RGB๊ฑฐ๋ฆฌ, Time: 92 ms, Memory: 9632 KB -BaekjoonHub
1 parent 9ac5fdb commit 7c38750

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# [Silver I] RGB๊ฑฐ๋ฆฌ - 1149
2+
3+
[๋ฌธ์ œ ๋งํฌ](https://www.acmicpc.net/problem/1149)
4+
5+
### ์„ฑ๋Šฅ ์š”์•ฝ
6+
7+
๋ฉ”๋ชจ๋ฆฌ: 9632 KB, ์‹œ๊ฐ„: 92 ms
8+
9+
### ๋ถ„๋ฅ˜
10+
11+
๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
12+
13+
### ์ œ์ถœ ์ผ์ž
14+
15+
2026๋…„ 3์›” 2์ผ 14:38:22
16+
17+
### ๋ฌธ์ œ ์„ค๋ช…
18+
19+
<p>RGB๊ฑฐ๋ฆฌ์—๋Š” ์ง‘์ด N๊ฐœ ์žˆ๋‹ค. ๊ฑฐ๋ฆฌ๋Š” ์„ ๋ถ„์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๊ณ , 1๋ฒˆ ์ง‘๋ถ€ํ„ฐ N๋ฒˆ ์ง‘์ด ์ˆœ์„œ๋Œ€๋กœ ์žˆ๋‹ค.</p>
20+
21+
<p>์ง‘์€ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘ ์ค‘ ํ•˜๋‚˜์˜ ์ƒ‰์œผ๋กœ ์น ํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์ง‘์„ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘์œผ๋กœ ์น ํ•˜๋Š” ๋น„์šฉ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์•„๋ž˜ ๊ทœ์น™์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ๋ชจ๋“  ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•ด๋ณด์ž.</p>
22+
23+
<ul>
24+
<li>1๋ฒˆ ์ง‘์˜ ์ƒ‰์€ 2๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.</li>
25+
<li>N๋ฒˆ ์ง‘์˜ ์ƒ‰์€ N-1๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.</li>
26+
<li>i(2 โ‰ค i โ‰ค N-1)๋ฒˆ ์ง‘์˜ ์ƒ‰์€ i-1๋ฒˆ, i+1๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.</li>
27+
</ul>
28+
29+
### ์ž…๋ ฅ
30+
31+
<p>์ฒซ์งธ ์ค„์— ์ง‘์˜ ์ˆ˜ N(2 โ‰ค N โ‰ค 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ์ง‘์„ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘์œผ๋กœ ์น ํ•˜๋Š” ๋น„์šฉ์ด 1๋ฒˆ ์ง‘๋ถ€ํ„ฐ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์€ 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.</p>
32+
33+
### ์ถœ๋ ฅ
34+
35+
<p>์ฒซ์งธ ์ค„์— ๋ชจ๋“  ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.</p>
36+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
"use strict";
2+
3+
const fs = require("fs");
4+
5+
const input = fs
6+
.readFileSync(process.platform === "linux" ? "/dev/stdin" : "./input.txt")
7+
.toString()
8+
.trim()
9+
.split("\n");
10+
11+
const N = +input[0];
12+
const RGB = [];
13+
14+
for (let i = 1; i <= N; i++) {
15+
RGB.push(input[i].split(" ").map(Number));
16+
}
17+
18+
/**
19+
* 1๋ฒˆ์ง‘์˜ ์ƒ‰์€ 2๋ฒˆ์ง‘์˜ ์ƒ‰๊ณผ ๋‹ฌ๋ผ์•ผํ•จ
20+
* N๋ฒˆ์ง‘์˜ ์ƒ‰์€ N-1๋ฒˆ์ง‘์˜ ์ƒ‰๊ณผ ๋‹ฌ๋ผ์•ผํ•จ
21+
* i๋ฒˆ์ง‘์˜ ์ƒ‰์€ i-1, i+1๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๋‹ฌ๋ผ์•ผํ•จ
22+
* => ์ด์›ƒํ•œ ์ง‘์€ ๊ฐ™์€ ์ƒ‰์œผ๋กœ ์น ํ•  ์ˆ˜ ์—†๋‹ค
23+
* => ๋งŒ์•ฝ 2๋ฒˆ์ง‘์„ ๋นจ๊ฐ•์œผ๋กœ ์น ํ•˜๋ฉด 1๋ฒˆ์ง‘์€ ์ดˆ๋ก์ด๋‚˜ ํŒŒ๋ž‘์ด์–ด์•ผํ•จ
24+
* i๋ฒˆ์งธ๋ฅผ ๋นจ๊ฐ•์œผ๋กœ ๋๋‚ด๋Š” ์ตœ์†Œ๋น„์šฉ = ํ˜„์žฌ์˜ ๋นจ๊ฐ•๋น„์šฉ + ์•ž์ง‘์ด ์ดˆ๋ก์ด๋‚˜ ํŒŒ๋ž‘์ธ ๊ฒฝ์šฐ์—์„œ ๋น„์šฉ์ด ๋” ์ ์€ ๊ฒƒ
25+
*
26+
* ๋ชจ๋“  ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์˜ ์ตœ์†Ÿ๊ฐ’ = ??
27+
*/
28+
29+
const dp = Array.from({ length: N }, () => Array(3).fill(0));
30+
31+
//์ฒซ๋ฒˆ์งธ์ง‘ ์น ํ•˜๋Š” ๋น„์šฉ์œผ๋กœ ์ดˆ๊ธฐํ™”
32+
dp[0][0] = RGB[0][0];
33+
dp[0][1] = RGB[0][1];
34+
dp[0][2] = RGB[0][2];
35+
36+
for (let i = 1; i < N; i++) {
37+
// ํ˜„์žฌ ์ง‘์„ ๋นจ๊ฐ•(0)์œผ๋กœ ์น ํ•˜๋ ค๋ฉด, ์•ž์ง‘์€ ์ดˆ๋ก(1)์ด๋‚˜ ํŒŒ๋ž‘(2) ์ค‘ ์ตœ์†Ÿ๊ฐ’์ด์–ด์•ผ ํ•จ
38+
dp[i][0] = RGB[i][0] + Math.min(dp[i - 1][1], dp[i - 1][2]);
39+
40+
// ํ˜„์žฌ ์ง‘์„ ์ดˆ๋ก(1)์œผ๋กœ ์น ํ•˜๋ ค๋ฉด, ์•ž์ง‘์€ ๋นจ๊ฐ•(0)์ด๋‚˜ ํŒŒ๋ž‘(2) ์ค‘ ์ตœ์†Ÿ๊ฐ’์ด์–ด์•ผ ํ•จ
41+
dp[i][1] = RGB[i][1] + Math.min(dp[i - 1][0], dp[i - 1][2]);
42+
43+
// ํ˜„์žฌ ์ง‘์„ ํŒŒ๋ž‘(2)์œผ๋กœ ์น ํ•˜๋ ค๋ฉด, ์•ž์ง‘์€ ๋นจ๊ฐ•(0)์ด๋‚˜ ์ดˆ๋ก(1) ์ค‘ ์ตœ์†Ÿ๊ฐ’์ด์–ด์•ผ ํ•จ
44+
dp[i][2] = RGB[i][2] + Math.min(dp[i - 1][0], dp[i - 1][1]);
45+
}
46+
47+
console.log(Math.min(dp[N - 1][0], dp[N - 1][1], dp[N - 1][2]));

0 commit comments

Comments
ย (0)