๋ฌธ์ ๋งํฌ
์ ๊ทผ ๋ฐฉ๋ฒ
1. P์ ์ํ์ข์ฐ์ P๊ฐ ์์ด์ผ ํ๋ค. (PP (x))
2. O์ ์ํ์ข์ฐ์ P๊ฐ 2๊ฐ ์ด์ ์กด์ฌํ๋ฉด ์๋๋ค. (POP (x))
checkUDLR : mark๊ฐ 'P'๋๋ 'O' ์ผ๋ ํด๋น mark์ ์ํ์ข์ฐ์ ์๋ mark๋ฅผ ์ ์ฅํ ๋ฐฐ์ด์์ 'P'๊ฐ ๋ช๊ฐ(๊ธธ์ด)์ธ์ง ์ ์ฅํ ๋ณ์
row.split.some()์ 'P'์ ์ํ์ข์ฐ์ 'P'๊ฐ ์์๋(checkUDLR > 0) ๋๋ 'O'์ ์ํ์ข์ฐ์ 'P'๊ฐ 2๊ฐ์ด์ ์์๋(checkUDLR >= 2) true ๋ฐํ
place.some()์ row.split.some()์ด true์ผ๋ 0, false์ผ๋ 1 ๋ฐํ
โ ๋ฐฐ์ด.some()์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ด ๋ฐ๊ฒฌ๋๋ฉด ์ฆ์ ๋ฐฐ์ด ์ํ๋ฅผ ์ค๋จํ๊ณ true๋ฅผ ๋ฐํํ๋ค.
function solution(places) {
var answer = [];
answer = places.map((place) => {
return place.some((row, rowIdx) =>
row.split('').some((mark, colIdx, rowArr) => {
if(mark === 'X') return false
const checkUDLR = [
(place[rowIdx - 1] || '')[colIdx],
(place[rowIdx + 1] || '')[colIdx],
rowArr[colIdx - 1] || '',
rowArr[colIdx + 1] || '',
].filter(mark => mark === "P").length
return (mark === "P" && checkUDLR > 0) || (mark === "O" && checkUDLR >= 2)
})
) ? 0 : 1
})
return answer;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ํ๋ ฌ ํ ๋๋ฆฌ ํ์ ํ๊ธฐ (77485) (0) | 2022.05.02 |
---|---|
[Javascript] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ (12973) (0) | 2022.05.02 |
[Javascript] ํฐ์ผ๋ชฌ (1845) (0) | 2022.04.30 |
[Javascript] ๊ธฐ๋ฅ๊ฐ๋ฐ (42586) (0) | 2022.04.30 |
[Javascript] 124 ๋๋ผ์ ์ซ์ (12899) (0) | 2022.04.29 |