Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions nnevia/8주차/240514/n-queen.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// gpt 사용
function check(queen, row) {
for (let i = 0; i < row; i += 1){}
function isSafe(row, col) {
// 동일 행의 상단 열을 확인합니다.
for (let i = 0; i < col; i++) {
if (board[row][i] === 'Q') return false;
}

// 좌상단 대각선을 확인합니다.
for (let i = row, j = col; i >= 0 && j >= 0; i--, j--) {
if (board[i][j] === 'Q') return false;
}

// 좌하단 대각선을 확인합니다.
for (let i = row, j = col; i < n && j >= 0; i++, j--) {
if (board[i][j] === 'Q') return false;
}

return true;
}

function backtrack(col) {
if (col === n) {
// 모든 퀸이 성공적으로 배치되면
const solution = board.map(row => row.join(''));
result.push(solution);
return;
}

for (let i = 0; i < n; i++) {
if (isSafe(i, col)) {
board[i][col] = 'Q'; // 퀸을 배치합니다.
backtrack(col + 1); // 다음 열로 이동합니다.
board[i][col] = '.'; // 백트래킹합니다.
}
}
}

function solution(n) {
return search(Array.from({length: n}, () => 0), 0);
}
}
38 changes: 38 additions & 0 deletions nnevia/8주차/240516/삼총사.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// 1차 풀이
function solution(number) {
let answer = 0;
for (let i = 0; i < number.length - 2; i++) {
for (let j = i + 1; j < number.length - 1; j++) {
for (let k = j + 1; k < number.length; k++) {
if (number[i] + number[j] + number[k] === 0) {
answer++;
}
}
}
}
return answer;
}


// 2차풀이 백트래킹 사용 (구글)
// const NUM = 3;

// function solution(number) {
// let ans = 0;
// const tmp = [];
// const backtrack = (cur) => {
// if(tmp.length === NUM){
// ans += tmp.reduce((a, b) => a + b) ? 0 : 1;
// return;
// }

// for(let i = cur; i < number.length; i++){
// tmp.push(number[i]);
// backtrack(i + 1);
// tmp.pop();
// }
// }

// backtrack(0);
// return ans;
// }