리스트
몬스터 트럭
#
, 주차 된 차X
, 또는 빈 주차 공간.
이다.#
, X
로 이루어진 R개의 줄에 C개의 문자// 01:00:58
function solution(parkingLot) {
const input = parkingLot.split("\n");
const [R, C] = input[0].split(" ").map(Number);
const SPACE = input.splice(1, R);
let result = Array.from({ length: 5 }, () => 0);
for (let i = 0; i < R - 1; i++) {
for (let j = 0; j < C - 1; j++) {
let count = 0;
if (
SPACE[i][j] === "#" ||
SPACE[i][j + 1] === "#" ||
SPACE[i + 1][j] === "#" ||
SPACE[i + 1][j + 1] === "#"
) {
continue;
}
if (SPACE[i][j] === "X") {
count++;
}
if (SPACE[i + 1][j] === "X") {
count++;
}
if (SPACE[i][j + 1] === "X") {
count++;
}
if (SPACE[i + 1][j + 1] === "X") {
count++;
}
for (let k = 0; k < result.length - 1; k++) {
if (count === k) result[k]++;
}
}
}
return result.join("\n");
}
const parkingLot = `4 4
#..#
..X.
..X.
#XX#`;
console.log(solution(parkingLot));
for (let i = 0; i < R - 1; i++) {
for (let j = 0; j < C - 1; j++) {
}
}
배열의 완전 탐색을 위해 2중 for문을 사용하였다.
let count = 0;
if (
SPACE[i][j] === "#" ||
SPACE[i][j + 1] === "#" ||
SPACE[i + 1][j] === "#" ||
SPACE[i + 1][j + 1] === "#"
) {
continue;
}
2행 2열을 전부 탐색해 #
인 빌딩은 트럭이 부술 수 없기에 #
탐색시 countinue
를 사용했다.
if (SPACE[i][j] === "X") {
count++;
}
if (SPACE[i + 1][j] === "X") {
count++;
}
if (SPACE[i][j + 1] === "X") {
count++;
}
if (SPACE[i + 1][j + 1] === "X") {
count++;
}
for (let k = 0; k < result.length - 1; k++) {
if (count === k) result[k]++;
}
주차장의 2행 2열을 전부 탐색하면서 X
의 개수 만큼 카운트 시킨다.
그 후 result 배열에 순서대로 저장한다.
return result.join("\n");
배열로 저장된 값을을 join()
를 통해 문자열화 해서 출력한다.