자료구조+알고리즘/Programmers
[프로그래머스_Lv.1] 바탕화면 정리 (javascript)
어나_eona
2024. 2. 27. 15:15
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/161990
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[풀이]
x, y 좌표를 어떻게 구할까 ? 를 먼저 고민해봐야한다.
(바탕화면)좌표에서 여러개의 파일이 있다고 생각했을 때, 모두 아우르는 범위를 알려면
드래그의 시작점은 젤상단의 왼쪽 이여야 하고
드래그의 끝점은 젤하단의 오른쪽이여야 한다.
주의할점은 이 문제에서 x축 ,y축 반대방향으로 간다
1. 이중for문 돌려서 좌표 마다 순회한다
2. '#' 이 나오면 x 좌표 배열에 (원래는 y좌표) j를 넣어주고 y 좌표 배열에 (원래는 x좌표) i를 넣어준다
3. result가( x최솟값, y최솟값 ) + (x최댓값+1 , y최댓값+1) 이므로 Math.min, Math.max 구해서 각각의 앞의 숫자 들고온다.
[코드]
function solution(wallpaper) {
const X = []
const Y = []
for(let i = 0; i < wallpaper.length; i++){
for(let j = 0; j< wallpaper[i].length; j++) {
if(wallpaper[i][j] === '#'){
X.push(j)
Y.push(i)
}
}
}
let answer = [Math.min(...Y),Math.min(...X),Math.max(...Y)+1,Math.max(...X)+1]
return answer;
}
728x90
반응형