javascript/프로그래머스
[코딩테스트 연습] level 1. 바탕화면 정리
sewonzzang123
2023. 3. 24. 19:52
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/161990
설명이 길어서 그렇지 내용은 별거 없었다.
function solution(wallpaper) {
var answer = [];
let lux,luy,rdx,rdy = 0;
for(let wallpaperLength = 0; wallpaperLength < wallpaper.length; wallpaperLength++){
for(let wallpaperInnerLength = 0; wallpaperInnerLength < wallpaper[0].length; wallpaperInnerLength++){
if(wallpaper[wallpaperLength][wallpaperInnerLength] === "#")
{
// 시작점 가장 작은거 넣으면 되지 않을까?
// 끝점 #위치가 있는 곳 가장 큰거만 rdx, rdy에 넣으면 될거같음.
lux = lux < wallpaperLength ? lux : wallpaperLength;
luy = luy < wallpaperInnerLength ? luy : wallpaperInnerLength;
rdx = rdx > wallpaperLength ? rdx : wallpaperLength;
rdy = rdy > wallpaperInnerLength ? rdy : wallpaperInnerLength;
}
}
}
answer = [lux, luy, rdx+1, rdy+1];
return answer;
}
function solution(wallpaper) {
let left = [];
let top = [];
let right = []
let bottom = [];
wallpaper.forEach((v,i) => {
[...v].forEach((val,ind) => {
if(val === "#") {
left.push(i)
top.push(ind)
right.push(i + 1)
bottom.push(ind + 1)
}
})
})
return [Math.min(...left), Math.min(...top), Math.max(...right), Math.max(...bottom)]
}
파일이 있는 위치만 구해서 배열 안에 넣은 후 min값과 max값으로 결과값을 찾아내는 방법이 있었다.
유연한 사고..!!
반응형