Skip to content

Commit f0af6bd

Browse files
author
Eric
committed
92차 2번 문제풀이
1 parent 55a2b5c commit f0af6bd

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

live9/test92/문제2/황장현.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
function solution(board, skill) {
2+
let count = 0;
3+
let effectMap = Array.from({ length: board.length + 1 }, () =>
4+
Array(board[0].length + 1).fill(0)
5+
);
6+
7+
for (let i = 0; i < skill.length; ++i) {
8+
const [skillType, r1, c1, r2, endCol, degree] = skill[i];
9+
const adjustedImpact = skillType === 1 ? -degree : degree;
10+
11+
effectMap[r1][c1] += adjustedImpact;
12+
effectMap[r1][endCol + 1] -= adjustedImpact;
13+
effectMap[r2 + 1][c1] -= adjustedImpact;
14+
effectMap[r2 + 1][endCol + 1] += adjustedImpact;
15+
}
16+
17+
for (let i = 0; i < board.length; ++i) {
18+
for (let j = 0; j < board[i].length; ++j) {
19+
if (i > 0) effectMap[i][j] += effectMap[i - 1][j];
20+
if (j > 0) effectMap[i][j] += effectMap[i][j - 1];
21+
if (i > 0 && j > 0) effectMap[i][j] -= effectMap[i - 1][j - 1];
22+
}
23+
}
24+
25+
for (let i = 0; i < board.length; ++i) {
26+
for (let j = 0; j < board[i].length; ++j) {
27+
board[i][j] += effectMap[i][j];
28+
if (board[i][j] > 0) {
29+
count++;
30+
}
31+
}
32+
}
33+
34+
return count;
35+
}
36+
37+
console.log(
38+
solution(
39+
[
40+
[5, 5, 5, 5, 5],
41+
[5, 5, 5, 5, 5],
42+
[5, 5, 5, 5, 5],
43+
[5, 5, 5, 5, 5],
44+
],
45+
[
46+
[1, 0, 0, 3, 4, 4],
47+
[1, 2, 0, 2, 3, 2],
48+
[2, 1, 0, 3, 1, 2],
49+
[1, 0, 1, 3, 3, 1],
50+
]
51+
)
52+
);

0 commit comments

Comments
 (0)