티스토리 뷰

https://www.acmicpc.net/problem/1799

 

1799번: 비숍

첫째 줄에 체스판의 크기가 주어진다. 체스판의 크기는 10이하의 자연수이다. 둘째 줄부터 아래의 예와 같이 체스판의 각 칸에 비숍을 놓을 수 있는지 없는지에 대한 정보가 체스판 한 줄 단위로

www.acmicpc.net

const input = require('fs').readFileSync('./dev/stdin').toString().trim().split('\n');
const N = +input.shift();
const board = input.map((v) => v.split(' ').map(Number));

const cross = Array.from(Array(2 * N), () => []);
for (let i = 0; i < N; i++) {
	for (let j = 0; j < N; j++) {
		if (board[i][j] == 1) cross[i + j].push([i, j]);
	}
}

// console.log(cross);

let visited = Array.from(Array(2 * N), () => false);

let answer = 0;
let max = 0;

function dfs(n, cnt) {
	if (max >= cnt + Math.ceil((2 * N - 1 - n) / 2)) return;

	if (n >= 2 * N - 1) {
		max = Math.max(cnt, max);
		return;
	}

	cross[n].forEach(([i, j]) => {
		// console.log(i - j + N);
		if (visited[i - j + N] == false) {
			visited[i - j + N] = true;
			dfs(n + 2, cnt + 1);
			visited[i - j + N] = false;
		}
	});
	dfs(n + 2, cnt);
}
dfs(0, 0);
answer += max;
max = 0;
dfs(1, 0);
answer += max;
console.log(answer);

https://www.acmicpc.net/problem/1799

 

 

728x90

'자료구조 알고리즘 > 백준' 카테고리의 다른 글

Node.js) 백준 2467번: 용액  (0) 2023.07.02
Node.js) 백준 2239번: 스도쿠  (0) 2023.07.02
Node.js) 백준 13335번: 트럭  (0) 2023.07.01
Node.js) 백준 17281번: ⚾  (0) 2023.07.01
Node.js) 백준 1547번: 공  (0) 2023.07.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함