문제 링크
https://www.acmicpc.net/problem/1058
해설
큰 문제없이 풀 수 있었다. 중복을 따로 처리하기 귀찮아 set을 이용하였다.
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().split("\n");
const cnt = Number(input[0])
// [N,Y,N,N,N]
// [N,Y,N,N,N]
// [N,Y,N,Y,N]
// [N,N,Y,N,Y]
// [N,n,N,Y,N]
let map = [];
for (let i = 1; i <= input.length - 1; ++i) {
map.push(input[i].split(""));
}
let answer = 0;
for (let i = 0; i < map.length; ++i) {
let set = new Set();
for (let j = 0; j < map[0].length; ++j) {
if (j !== i && map[i][j] === "Y") {
set.add(j);
}
}
let arr = [...set];
arr.forEach((p) => {
for (let z = 0; z < map[0].length; ++z) {
if (z !== i && map[p][z] === "Y") {
set.add(z);
}
}
});
if (set.size === cnt - 1) {
console.log(set.size);
return;
} else {
answer = Math.max(answer, set.size);
}
}
console.log(answer);
'Algorithm' 카테고리의 다른 글
백준[JS] > 11000번 강의실 배정 (0) | 2024.11.04 |
---|---|
백준[JS] > 1092번 배 (0) | 2024.11.02 |
백준[JS] > 1051번 숫자 정사각형 (0) | 2024.10.31 |
백준[JS] > 1021번 회전하는 큐 (0) | 2024.10.30 |
백준[JS] > 1074번 Z (0) | 2024.10.28 |