Skip to content

Commit 06ca18b

Browse files
committed
solve
1 parent 0368d3a commit 06ca18b

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

백준/Gold/1931. 회의실 배정/회의실 배정.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
const { count } = require('console');
21
let fs = require('fs');
32
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
43

프로그래머스/test.js

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,30 @@
11
let fs = require('fs');
22
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
33

4-
let N = Number(input[0]);
5-
let balloons = input[1].split(' ').map(Number);
4+
let n = Number(input[0]);
5+
let queens = [];
66

7-
let arrows = [];
8-
let answer = 0;
9-
10-
for (let h of balloons) {
11-
let found = false;
12-
13-
// 현재 풍선을 터뜨릴 수 있는 화살 찾기
14-
for (let i = 0; i < arrows.length; i++) {
15-
if (arrows[i] === h) {
16-
arrows[i]--; // 해당 화살의 높이를 감소
17-
found = true;
18-
break;
19-
}
7+
// 해당 위치에 퀸을 놓을 수 있는지 확인
8+
function possible(x, y) {
9+
for (let [a, b] of queens) {
10+
if (a == x || b == y) return false;
11+
if (Math.abs(a - x) == Math.abs(b - y)) return false;
2012
}
13+
return true;
14+
}
2115

22-
if (!found) {
23-
// 기존 화살로 터뜨릴 수 없으면 새 화살 추가
24-
arrows.push(h - 1);
25-
answer++;
16+
let cnt = 0;
17+
function dfs(row) {
18+
if (row == n) cnt += 1; // 퀸을 N개 배치 가능한 경우 카운트
19+
// 현재 행에 존재하는 열을 하나씩 확인
20+
for (let i = 0; i < n; i++) {
21+
if (!possible(row, i)) continue; // 현재 위치에 놓을 수 없다면 continue
22+
queens.push([row, i]);
23+
dfs(row + 1);
24+
queens.pop(); // 현재 위치에서 퀸 제거
2625
}
2726
}
27+
dfs(0);
28+
console.log(cnt);
2829

29-
console.log(answer);
30+
// 강의

0 commit comments

Comments
 (0)