๐ฅ Algorithm/Baekjoon
[๋ฐฑ์ค 3085๋ฒ] ์ฌํ๊ฒ์ - ์๋ฐ์คํฌ๋ฆฝํธ(nodejs)
Lennon
2022. 2. 6. 20:26
728x90
๋ฐ์ํ
https://www.acmicpc.net/problem/3085
const fs = require('fs');
let [len, ...input] = fs
.readFileSync('dev/stdin')
.toString()
.trim()
.split('\n')
.map((v) => v.split(''));
len = +len.join('');
let MAX = eatCandyCount(input);
for (let i = 0; i < len; i++) {
for (let j = 0; j < len - 1; j++) {
if (input[i][j] !== input[i][j + 1]) {
[input[i][j], input[i][j + 1]] = [input[i][j + 1], input[i][j]];
MAX = Math.max(MAX, eatCandyCount(input));
[input[i][j + 1], input[i][j]] = [input[i][j], input[i][j + 1]];
}
}
} // ์ข์ฐ ๊ฐ์ด ๋ค๋ฅด๋ฉด ๊ฐ ๋ฐ๊ฟ์ฃผ๊ณ ์บ๋ ๊ฐ์ ์ธ๊ณ ๋ค์ ๋ณธ๋์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len; j++) {
if (input[i][j] !== input[i + 1][j]) {
[input[i][j], input[i + 1][j]] = [input[i + 1][j], input[i][j]];
MAX = Math.max(MAX, eatCandyCount(input));
[input[i + 1][j], input[i][j]] = [input[i][j], input[i + 1][j]];
}
}
} // ์ํ ๊ฐ์ด ๋ค๋ฅด๋ฉด ๊ฐ ๋ฐ๊ฟ์ฃผ๊ณ ์บ๋์ธ๊ณ ๋ค์ ๋ณธ๋์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
console.log(MAX); // ์ต๋๊ฐ ์ถ๋ ฅ
function eatCandyCount(arr) {
let MAX = 0;
for (let i = 0; i < len; i++) {
let count = 0;
let value = arr[i][0];
for (let j = 0; j < len; j++) {
if (arr[i][j] === value) {
count++;
} else {
MAX = Math.max(MAX, count);
count = 1;
value = arr[i][j];
}
if (j === len - 1) MAX = Math.max(MAX, count);
}
} // ํ์ผ๋ก ๋๋ฉด์ ์ฐ์๋ ๊ฐ์ ์ฌํ ๊ฐ์ ์ธ๊ธฐ
for (let i = 0; i < len; i++) {
let count = 0;
let value = arr[0][i];
for (let j = 0; j < len; j++) {
if (arr[j][i] === value) {
count++;
} else {
MAX = Math.max(MAX, count);
count = 1;
value = arr[j][i];
}
if (j === len - 1) MAX = Math.max(MAX, count);
}
} // ์ด๋ก ๋๋ฉด์ ์ฐ์๋ ๊ฐ์ ์ฌํ ๊ฐ์ ์ธ๊ธฐ
return MAX; // ๊ฐ์ฅ ํฐ ๊ฐ return
}
์ข์ฐ ์ฌํ ์์ด ๋ค๋ฅด๊ฑฐ๋, ์ํ ์ฌํ ์์ด ๋ค๋ฅด๋ฉด ๋ ๊ฐ์ ๋ฐ๊ฟ์ฃผ๊ณ
[input[i][j], input[i][j + 1]] = [input[i][j + 1], input[i][j]];
eatCandyCount ํจ์๋ฅผ ํธ์ถํด ์ต๋ ๊ฐ์๋ฅผ ์ธ๊ณ ๋ค์ ๋ณธ๋ ๋ฐฐ์ด๋๋ก ๋ ๊ฐ์ ๋ฐ๊ฟ์ค๋ค.
[input[i][j + 1], input[i][j]] = [input[i][j], input[i][j + 1]];
๋๊น์ง ์ํํ์ฌ ์ต๋๊ฐ์ ๊ตฌํ๋ฉด ๋!
์ฒ์์ ๋ฐฐ์ด์๋ค๊ฐ ๊ฐ์ ๋ฃ๊ณ ํ์ Math.max ํจ์๋ฅผ ์ด์ฉํด ํธ์ถํ์ง๋ง ์๊ฐํด๋ณด๋ ๊ทธ๋ฅ ์ฒ์๋ถํฐ Max๊ฐ์ ์์ ํด๊ฐ๋ฉฐ ๋์ค์ ๊ฐ์ ์ถ๋ ฅํ๋ ๊ฒ ์๊ฐ๋ณต์ก๋, ๋ฉ๋ชจ๋ฆฌ์์ ํจ์จ์ ์ด๋ค.
์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์๊ฐ์์ ํจ์ฌ ์ ์ฉํ ๊ฑธ ํ์ธํ ์ ์์๋ค.
728x90
๋ฐ์ํ