-
프로그래머스 - 바탕화면 정리Algorithm 2023. 5. 26. 11:00
문제
풀이
이 문제는 드래그를 시작할 좌표와 드래그를 마칠 좌표를 구하는게 관건이다
wallpaper 배열의 요소들 중에서 '#' 문자가 나온 가장 첫번째 요소의 인덱스가 드래그를 시작할 좌표의 y좌표가 된다
wallpaper 배열의 요소에서 가장 첫번째로 존재하는 '#' 문자가 몇 번째 인덱스에 있는지 확인하고 그중 최솟값이 드래그를 시작할 좌표의 x좌표가 된다
wallpaper 배열의 요소들 중에서 '#' 문자가 나온 요소들 중 마지막 요소의 인덱스 + 1 이 드래그를 마칠 좌표의 y좌표가 된다
wallpaper 배열의 요소에서 마지막에 존재하는 '#' 문자가 몇 번째 인덱스에 있는지 확인하고 그중 최댓값 + 1 이 드래그를 마칠 좌표의 x좌표가 된다
function solution(wallpaper) { // [최상단y, 최상단x, 최하단y, 최하단x] let position = [0, 0, 0, 0]; let initArr = []; // 최상단 y좌표 구하기 for(let i = 0; i < wallpaper.length; i++) { if(wallpaper[i].includes('#')) { position[0] = i; break; } } // 최상단 x좌표 구하기 for(let i = 0; i < wallpaper.length; i++) { if(wallpaper[i].includes('#')) { initArr.push(wallpaper[i].indexOf('#')); } position[1] = Math.min(...initArr); } initArr = []; // 최하단 y좌표 구하기 for(let i = 0; i < wallpaper.length; i++) { if(wallpaper[i].includes('#')) { initArr.push(i+1); } position[2] = Math.max(...initArr); } initArr = []; // 최하단 x좌표 구하기 for(let i = 0; i < wallpaper.length; i++) { if(wallpaper[i].includes('#')) { initArr.push(wallpaper[i].lastIndexOf('#')+1); } position[3] = Math.max(...initArr); } return position; }
'Algorithm' 카테고리의 다른 글
프로그래머스 - 구명보트 (0) 2023.06.07 프로그래머스 - 게임 맵 최단거리 (0) 2023.05.30 프로그래머스 - 폰켓몬 (0) 2023.05.25 프로그래머스 - 성격 유형 검사하기 (0) 2023.05.23 프로그래머스 - 짝지어 제거하기 (0) 2023.05.21