Muscardinus
거리두기 확인하기 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/81302#fn1
function solution(places) {
const answer = [];
for (let i = 0; i < places.length; i++) {
answer.push(valid_check(places[i]));
}
return answer;
}
function valid_check(place) {
place = place.map(p => p.split(""));
for (let row = 0; row < 5; row++) {
for (let col = 0; col < 5; col++) {
if (place[row][col] === "P") {
// 가로 한칸
if (col < 4 && place[row][col + 1] === "P") return 0;
// 가로 두칸
if (col < 3 && place[row][col + 2] === "P" && place[row][col + 1] === "O") return 0;
// 세로 한칸
if (row < 4 && place[row + 1][col] === "P") return 0;
// 세로 두칸
if (row < 3 && place[row + 2][col] === "P" && place[row + 1][col] === "O") return 0;
// 아래 왼쪽 대각
if (row < 4 && place[row + 1][col - 1] === "P") {
if (place[row + 1][col] === "O" || place[row][col - 1] === "O") return 0;
}
// 아래 도른쪽 대각
if (row < 4 && place[row + 1][col + 1] === "P") {
if (place[row + 1][col] === "O" || place[row][col + 1] === "O") return 0;
}
}
}
}
return 1;
}
728x90
'알고리즘 문제 > [프로그래머스] Lv2' 카테고리의 다른 글
양궁대회 (0) | 2022.03.27 |
---|---|
순위검색 (0) | 2022.02.02 |
행렬 테두리 회전하기 (0) | 2022.01.23 |
[3차] 방금그곡 (0) | 2021.02.10 |
[3차] 압축 (0) | 2021.02.07 |
Comments