https://school.programmers.co.kr/learn/courses/30/lessons/161990?language=javascript
function solution(wallpaper) {
let fileLocation = []; // 파일 위치 배열
for(i=0; i<wallpaper.length;i++){ //한 줄
for(j=0; j<wallpaper[0].length;j++){ //줄의 한 칸
if(wallpaper[i][j]===".") continue;
else if(wallpaper[i][j]==="#"){
fileLocation.push([i, j]);
}
}
}
// 파일 위치 추출 [[0,1],[1,2],[2,3]]
let xValues = [];
let yValues = [];
fileLocation.forEach(coord=>{
xValues.push(coord[0]);
yValues.push(coord[1]);
})
const minX = Math.min(...xValues);
const minY = Math.min(...yValues);
const maxX = Math.max(...xValues);
const maxY = Math.max(...yValues);
return [minX, minY, maxX+1, maxY+1]
}
코드 해설
- 주어진 파일 위치 배열을 돌면서 파일이 없는 "." 인 경우는 continue, 있을 경우에는 위치 좌표값(상단 좌측)을 배열 형태로 저장
- 저장된 파일 위치 중첩 배열에서 X좌표, Y좌표를 나누어 새 배열 생성
- 각각 좌표에서 가장 작은 값, 가장 큰 값 구하기
- 파일 선택은 하단 우측까지 포함되어야 하므로 가장 큰 좌표 값에는 각각 +1 하여 출력
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 삼각형의 완성조건(2) (Python3) (0) | 2024.05.14 |
---|---|
[프로그래머스] 문자열 내림차순으로 배치하기 (JavaScript) (0) | 2024.01.17 |
[프로그래머스] 문자열 내 마음대로 정렬하기 (JavaScript) (0) | 2024.01.17 |
[프로그래머스] 이상한 문자 만들기 (JavaScript) (0) | 2023.06.20 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (JavaScript) (0) | 2023.06.20 |