-
[프로그래머스/javascript] 프렌즈 4블록(못풀었다..꼭 다시풀기)코딩테스트 2023. 3. 7. 10:19
function solution(m, n, board) { var answer = 0; board = board.map((el)=>el.split("")); while(true){ let deletedBlock = []; for(let i=0;i<m-1;i++){ for(let j=0;j<n-1;j++){ let char = board[i][j]; if(board[i][j]){ if(char===board[i][j+1]&&char===board[i+1][j]&&char===board[i+1][j+1]){ deletedBlock.push([i,j],[i,j+1],[i+1,j],[i+1,j+1]) }} } } if(deletedBlock.length===0) return [].concat(...board).filter((v) => !v).length; for(let i=0;i<deletedBlock.length;i++){ board[deletedBlock[i][0]][deletedBlock[i][1]] = 0 } for (let i = m - 1; i > 0; i--) { for (let j = 0; j < n; j++) { for (let k = i - 1; k >= 0 && ! board[i][j]; k--) { if (board[k][j]) { board[i][j] = board[k][j]; board[k][j] = 0; break; } } } }} }
블록을 밑으로 내리는 과정에서 너무 어려워서 못풀었다.
나는 저 for(k)문을 while문으로 작성했었는데, 크게 틀린 풀이는 아니었던것 같다.
그리고 저 마지막 리턴할때 조건문은 생각 못한 부분이었는데... 많이 배웠다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스/javascript] 2Xn 파일링 (0) 2023.03.08 [프로그래머스/javascript] 게임맵 최단거리 (시간나면 다시풀기) (0) 2023.03.07 [프로그래머스/javascript] 파일명 정렬 (정규식 공부하고 다시풀기,sort 객체 사용법 공부) (0) 2023.03.04 [프로그래머스/javascript] 오픈채팅방 (다시 풀어보기) (0) 2023.03.03 [프로그래머스/javascript] 피로도 (꼭!!! 다시풀기 못풀었음) (0) 2023.03.02