https://school.programmers.co.kr/learn/courses/30/lessons/161990
function solution(wallpaper) {
let [sx, sy] = [0, 0], [ex, ey] = [0, 0], isFind = false;
wallpaper.forEach((v, i)=>{
[...v].forEach((w, j)=>{
if (w === "#") {
if (!isFind) {
sx = i;
sy = j;
ex = i+1;
ey = j+1;
isFind = true;
} else{
sx = Math.min(sx, i);
sy = Math.min(sy, j);
ex = Math.max(ex, i+1);
ey = Math.max(ey, j+1);
}
}
})
})
return [sx, sy, ex, ey];
}
가장 처음 등장한 #
을 찾기 위해 isFind
플래그를 세웠다. 못 찾았다면 현재 좌표를 드래그할 영역의 초기값으로 세팅했다. 요소 사이의 줄을 계산해야 하므로, 끝점은 +1
했다.
이후 #
이 등장하면 시작점은 기존 값보다 작을 때, 끝점은 기존 값보다 클 때 변경했다.