Skip to content

Commit 683470e

Browse files
committed
115차 1번 문제풀이
1 parent 7245a24 commit 683470e

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
const input = require("fs")
2+
.readFileSync(
3+
process.platform === "linux"
4+
? "/dev/stdin"
5+
: require("path").join(__dirname, "input.txt"),
6+
"utf8"
7+
)
8+
.trim()
9+
.split("\n")
10+
.map(Number);
11+
12+
function solution(input) {
13+
const arr = input.slice(1);
14+
let answer = 0;
15+
16+
function dfs(start, end) {
17+
if (start > end) return null;
18+
if (start === end) return arr[start];
19+
20+
let max = -Infinity;
21+
let maxIdx = -1;
22+
for (let i = start; i <= end; i++) {
23+
if (arr[i] > max) {
24+
max = arr[i];
25+
maxIdx = i;
26+
}
27+
}
28+
29+
const leftMax = dfs(start, maxIdx - 1);
30+
const rightMax = dfs(maxIdx + 1, end);
31+
32+
if (leftMax !== null) answer += max - leftMax;
33+
if (rightMax !== null) answer += max - rightMax;
34+
35+
return max;
36+
}
37+
38+
dfs(0, arr.length - 1);
39+
return answer;
40+
}
41+
42+
console.log(solution(input));

0 commit comments

Comments
 (0)