๐ฉ๐ปโ๐ป๋ฌธ์ ๋งํฌ
[๋ฐฑ์ค 1652] ๋์ธ ์๋ฆฌ๋ฅผ ์ฐพ์๋ผ (Javascript)
โ๏ธIdea Sketch
2021-07-17
1. ๋ก์ง
- ์ฐ์ 2์นธ ์ด์์ ๋น ์นธ์ด ์กด์ฌํ๋ฉด ๋๋๋ค.
- ๋์ธ ๋๋ ๋ฌด์กฐ๊ฑด ๋ชธ์ ์ญ ๋ป๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ๋ฒฝ์ด๋ ์ง์ ๋ฟ๋๋ค!!
2. ๊ฐ๋ก๋ก ๋์ธ ์ ์๋ ์๋ฆฌ
- ๋ฌธ์์ด์ X๊ธฐ์ค์ผ๋ก ๋๋ ํ, includes()๋ก ..์ด ์๋์ง ํ์ธ
input[i].split('X').forEach(v => {
if (v.includes('..')) row++;
})
- filter() ์ฌ์ฉ
row += input[i].split('X').filter(v => v.includes('..')).length;
3. ์ธ๋ก๋ก ๋์ธ ์ ์๋ ์๋ฆฌ
- .์ ์นด์ดํธ
- X๊ฐ ๋์ค๋ฉด ์ด๊ธฐํ
4. 2๊ฐ ์ด์์ผ ๋ 1๋ฒ๋ง ์นด์ดํธ ํด์ผํ๋๋ฐโฆ
- for๋ฌธ ์์ํ๊ธฐ ์ ์ ์นด์ดํธํ๊ธฐ (X) --> ์ธ๋ก๋ก ๋์ธ ์ ์๋ ์๋ฆฌ ๋ง์ง๋ง ๊ฒฝ์ฐ๋ฅผ ์นด์ดํธํ์ง ๋ชปํจ
- ์ง ๋๋ ๋ฒฝ์ ๋ฟ์์ ๋ column +1
โ๏ธ์์ค์ฝ๋
2021-07-17 ์คํจ
- ์์ธ : 2์นธ ๋น์นธ์ด ์กด์ฌํ๊ธฐ๋ง ํ๋ฉด +1ํ๊ณ ๋ฐ๋ก ๋ค์์ฐจ๋ก๋ก ๋์ด๊ฐ
- But ๋์ธ ์ ์๋ ์๋ฆฌ๊ฐ ์ฌ๋ฌ๊ฐ์ผ ์ ์์
๋ฐ๋ก
..X..์ผ ๊ฒฝ์ฐ ๋์ธ ์ ์๋ ์๋ฆฌ๋ 1๊ฐ๊ฐ ์๋๋ผ 2๊ฐ
function solution(count, input) {
let row = 0, column = 0;
for (let i=0; i<count; i++) {
if (input[i].includes('..')) row++;
for (let j=0; j<count; j++) {
if (i === 0) continue;
if (input[i-1][j] === '.' && input[i][j] === '.') {
column++;
break;
}
}
}
return `${row} ${column}`
}
2021-07-17 ํต๊ณผ
let fs = require('fs');
let input = fs.readFileSync('../stdin').toString().split('\n');
let count = input.shift();
function solution(count, input) {
let row = 0, column = 0;
for (let i=0; i<count; i++) {
row += input[i].split('X').filter(v => v.includes('..')).length;
let columnCount = 0; // ์ธ๋ก๋ก ์ฐ์ํ๋ ๋น ์นธ์ ์
for (let j=0; j<count; j++) {
if (input[j][i] === '.') columnCount++;
if (input[j][i] === 'X' || j === count - 1) { // ์ง์ด๋ ๋ฒฝ์ ๋ฟ์์ ๋
if (columnCount >= 2) column++;
columnCount = 0;
}
}
}
return `${row} ${column}`
}
console.log(solution(count, input));