-
Notifications
You must be signed in to change notification settings - Fork 0
/
땅따먹기.js
35 lines (29 loc) · 825 Bytes
/
땅따먹기.js
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
// Solution 1
// for 문과, slice(), splice() 메서드를 활용한 솔루션
function solution1(land) {
const N = land.length;
for (let x = 1; x < N; x++) {
for (let y = 0; y < 4; y++) {
const upperLine = land[x - 1].slice();
upperLine.splice(y, 1);
land[x][y] += Math.max(...upperLine);
}
}
const maxScore = Math.max(...land[N - 1]);
return maxScore;
}
// Solution 2
// reduce() 메서드를 활용한 솔루션
function solution2(land) {
const lastLine = land.reduce(
(acc, cur) => [
cur[0] + Math.max(acc[1], acc[2], acc[3]),
cur[1] + Math.max(acc[0], acc[2], acc[3]),
cur[2] + Math.max(acc[0], acc[1], acc[3]),
cur[3] + Math.max(acc[0], acc[1], acc[2]),
],
[0, 0, 0, 0]
);
const maxScore = Math.max(...lastLine);
return maxScore;
}