안녕하세요
프로그래머스 JS [바탕화면 정리] 본문
문제요약 : 드래그하여 모두 선택할 수 있는 최단 경로 찾기
모든 파일을 선택하기 위해선 바탕화면의 가장 왼쪽 위 (0, 0)에서 가장 오른쪽 아래 (7, 9)로 드래그 해야만 합니다. 따라서 [0, 0, 7, 9]를 return합니다.
function solution(wallpaper) {
let top = Infinity,
left = Infinity,
bottom = 0,
right = 0;
wallpaper.forEach((row, rowIndex) => {
if (row.includes("#")) {
top = Math.min(top, rowIndex);
bottom = Math.max(bottom, rowIndex);
}
row.split("").forEach((char, columnIndex) => {
if (char === "#") {
left = Math.min(left, columnIndex);
right = Math.max(right, columnIndex);
}
});
});
return [top, left, bottom + 1, right + 1];
}
row에서 top과 bottom을 찾고,
column에서 left와 right를 반환하면
(0,0)과 (6,8)이 된다.
하지만 해당 파일 영역을 포함시키기 위해서는 드래그를 파일의 오른쪽 아래 영역까지 해야하므로
마지막에 bottom, right 각각에 +1 을 해준다.
'프로그래머스 > Lv.1' 카테고리의 다른 글
프로그래머스 JS [개인정보 수집 유효기간] (0) | 2023.06.24 |
---|---|
프로그래머스 JS [달리기 경주] (0) | 2023.05.08 |
프로그래머스 JS [대충 만든 자판] (0) | 2023.05.08 |
프로그래머스 JS [덧칠하기] (0) | 2023.04.13 |
프로그래머스 JS [추억 점수] (0) | 2023.04.12 |