[프로그래머스] 거리두기 확인하기 (javascript)
https://programmers.co.kr/learn/courses/30/lessons/81302?language=javascript
코딩테스트 연습 - 거리두기 확인하기
[["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1]
programmers.co.kr
function solution(places) {
let answer = [];
let count = 0;
for(let i = 0; i < places.length; i++){
Loop :
for(let j = 0; j < places[i].length; j++){
if(places[i][j].includes("PO")){
let res = places[i][j].indexOf("PO");
if(j < 4 && (places[i][j+1].indexOf("OP") === res || places[i][j+1].indexOf("XP") === res)){
count++;
}
}
if(places[i][j].includes("PX")){
let res = places[i][j].indexOf("PX");
if(j < 4 && places[i][j+1].indexOf("OP") === res){
count++;
}
}
if(places[i][j].includes("OP")){
let res = places[i][j].indexOf("OP");
if(j < 4 && (places[i][j+1].indexOf("PO") === res || places[i][j+1].indexOf("PX") === res)){
count++;
}
}
if(places[i][j].includes("XP")){
let res = places[i][j].indexOf("XP");
if(j < 4 && places[i][j+1].indexOf("PO") === res){
count++;
}
}
if(places[i][j].includes("PP") || places[i][j].includes("POP")){
count++;
}
for(let k = 0; k < 3; k++){
if(places[i][k][j] === "P" && places[i][k+1][j] === "O" && places[i][k+2][j] === "P"){
count++;
}
}
for(let k = 0; k < 4; k++){
if(places[i][k][j] === "P" && places[i][k+1][j] === "P"){
count++;
}
}
}
if(count === 0){
answer.push(1);
}
else answer.push(0);
count = 0;
}
return answer;
}
단순하게 안 되는 경우들을 모두 탐색해 안 되는 게 한 개라도 있으면 0 아니면 1을 리턴하도록 했다.
##########################################################################
https://parkparkpark.tistory.com/27
[프로그래머스] 거리두기 확인하기 (js)
https://programmers.co.kr/learn/courses/30/lessons/81302?language=javascript 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO",..
parkparkpark.tistory.com
코드 개선 업로드