function solution(w) {
let wx = w[0].length;
let wy = w.length;
let x, y, dx, dy;
for (let i = 0; i < wy; i += 1) {
if (w[i].includes("#")) {
x = i;
break;
}
}
lp1: for (let i = 0; i < wx; i += 1) {
for (let j = 0; j < wy; j += 1) {
if (w[j][i] === "#") {
y = i;
break lp1;
}
}
}
for (let i = wy - 1; i >= 0; i -= 1) {
if (w[i].includes("#")) {
dx = i;
break;
}
}
lp2: for (let i = wx - 1; i >= 0; i -= 1) {
for (let j = wy - 1; j >= 0; j -= 1) {
if (w[j][i] === "#") {
dy = i;
break lp2;
}
}
}
return [x, y, dx + 1, dy + 1];
}
구현 로직
꾸역꾸역 탐색하는 방법입니다. 행과 열에 존재하는 가장 좌측(x)/위(y)에 존재하는 파일들의 교차점(x, y)과 가장 우측(dx)/아래(dy)에 존재하는 파일들의 교차점(dx, dy)만 알면 되기 때문에 2차원 순회를 하며 발견한 교차점의 좌표를 각각 return해주면 됩니다.