프로그래머스 / 바탕화면 정리
function solution(wallpaper) {
var answer = [];
// [".#...", "..#..", "...#."]
// [0, 1, 3, 4]
// XOXXX
// XXOXX
// XXXOX
// 파일의 개수를 먼저 구한다.
let fileCount = 0;
// fileCount개의 파일에 대해서 각각의 x좌표와 y좌표를 담도록 한다.
let xArr = [];
let yArr = [];
for (let i = 0 ; i < wallpaper.length ; i++){
for (let j = 0 ; j < wallpaper[i].length; j++){
if (wallpaper[i][j] === '#'){
fileCount++;
xArr.push(i);
yArr.push(j);
}
}
}
// 전체 x 중 최댓값과 최솟값, 전체 y 중 최댓값과 최솟값을 찾는다.
let maxX = Math.max(...xArr);
let minX = Math.min(...xArr);
let maxY = Math.max(...yArr);
let minY = Math.min(...yArr);
answer.push(minX);
answer.push(minY);
answer.push(maxX+1);
answer.push(maxY+1);
// 지금까지 바탕화면의 전체 크기를 고려하지 않았는데, 이 부분을 고려해주어야 할 것 같다.
// 4번 예제에 대해서, 파일은 1개이지만 파일을 클릭하는 것이 아니라 드래그를 해주기 위해서는
// 드래그할 수 있는 추가의 공간이 필요하다.
// 파일이 1개만 존재하는 경우 따로 로직을 수행해주거나
// wallpaper 전체 크기를 고려할 수 있는 방안을 생각해보아야 한다.
// ["..........", ".....#....", "......##..", "...##.....", "....#....."]
// [1, 3, 5, 8]
// [".##...##.", "#..#.#..#", "#...#...#", ".#.....#.", "..#...#..", "...#.#...", "....#...."]
// [0, 0, 7, 9]
// ["..", "#."]
// [1, 0, 2, 1]
return answer;
}
function solution(wallpaper) {
var answer = [];
// [".#...", "..#..", "...#."]
// [0, 1, 3, 4]
// XOXXX
// XXOXX
// XXXOX
// 파일의 개수를 먼저 구한다.
let fileCount = 0;
// fileCount개의 파일에 대해서 각각의 x좌표와 y좌표를 담도록 한다.
let xArr = [];
let yArr = [];
for (let i = 0 ; i < wallpaper.length ; i++){
for (let j = 0 ; j < wallpaper[i].length; j++){
if (wallpaper[i][j] === '#'){
fileCount++;
xArr.push(i);
yArr.push(j);
}
}
}
// 전체 x 중 최댓값과 최솟값, 전체 y 중 최댓값과 최솟값을 찾는다.
let maxX = Math.max(...xArr);
let minX = Math.min(...xArr);
let maxY = Math.max(...yArr);
let minY = Math.min(...yArr);
answer.push(minX);
answer.push(minY);
answer.push(maxX+1);
answer.push(maxY+1);
// 지금까지 바탕화면의 전체 크기를 고려하지 않았는데, 이 부분을 고려해주어야 할 것 같다.
// 4번 예제에 대해서, 파일은 1개이지만 파일을 클릭하는 것이 아니라 드래그를 해주기 위해서는
// 드래그할 수 있는 추가의 공간이 필요하다.
// 파일이 1개만 존재하는 경우 따로 로직을 수행해주거나
// wallpaper 전체 크기를 고려할 수 있는 방안을 생각해보아야 한다.
// ["..........", ".....#....", "......##..", "...##.....", "....#....."]
// [1, 3, 5, 8]
// [".##...##.", "#..#.#..#", "#...#...#", ".#.....#.", "..#...#..", "...#.#...", "....#...."]
// [0, 0, 7, 9]
// ["..", "#."]
// [1, 0, 2, 1]
return answer;
}
'Coding > 내일배움캠프' 카테고리의 다른 글
[내일배움캠프] JD 직무분석 | Node.js 4기 | Day 73 | 24.03.17.(일) (9) | 2024.03.18 |
---|---|
[내일배움캠프] Node.js 4기 | Day 72 | 24.03.16.(토) (1) | 2024.03.17 |
[내일배움캠프] 타입스크립트 개인 과제 5일차 | Node.js 4기 | Day 70 | 24.03.14.(목) (0) | 2024.03.15 |
[내일배움캠프] 타입스크립트 개인 과제 4일차 | Node.js 4기 | Day 69 | 24.03.13.(수) (0) | 2024.03.14 |
[내일배움캠프] 타입스크립트 개인 과제 3일차 | Node.js 4기 | Day 68 | 24.03.12.(화) (1) | 2024.03.12 |