https://school.programmers.co.kr/learn/courses/30/lessons/161990?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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 |