프로그래머스 | [1차] 프렌즈4블록
밑으로 내리는 부분에서 어렵지만 새로운 방법을 알게 되었다.
for문에 조건을 여러개 줄 수 있구나 깨닫게 되었다.
function solution(m, n, board) {
var answer = 0;
let b = board.map(e => e.split(''))
while (true) {
let arr = [];
for (let i = 0; i < m - 1; i++) {
for (let j = 0; j < n - 1; j++) {
let point = b[i][j];
if (point && point === b[i + 1][j] && point === b[i + 1][j + 1] && point == b[i][j + 1]) {
arr.push([i, j])
}
}
}
if (arr.length === 0) {
return [].concat(...b).filter(e => e === 0).length
}
arr.forEach(e => {
b[e[0]][e[1]] = 0;
b[e[0]][e[1] + 1] = 0;
b[e[0] + 1][e[1]] = 0;
b[e[0] + 1][e[1] + 1] = 0;
});
for (let i = m - 1; i > 0; i--) {
for (let j = 0; j < n; j++) {
for (let k = i - 1; k >= 0 && !b[i][j]; k--) {
if (b[k][j]) {
b[i][j] = b[k][j];
b[k][j] = 0;
break;
}
}
}
}
}
return answer;
}
요즘 다시 풀었던 문제들을 풀어보고 있다. 풀었던 건데,, 새롭다 ㅎㅎ
Author And Source
이 문제에 관하여(프로그래머스 | [1차] 프렌즈4블록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gusgk2658/프로그래머스-1차-프렌즈4블록저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)