ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

 

๋ฌธ์ œํ’€์ด

https://choi95.tistory.com/39

 

๋ด‰์šฐ๋ฆฌ

๋ฌธ์ œ  ์ง€๋„ ์ •๋ณด๊ฐ€ N*N ๊ฒฉ์žํŒ์— ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ๊ฒฉ์ž์—๋Š” ๊ทธ ์ง€์—ญ์˜ ๋†’์ด๊ฐ€ ์“ฐ์—ฌ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ฒฉ์žํŒ์˜ ์ˆซ์ž ์ค‘ ์ž์‹ ์˜ ์ƒํ•˜์ขŒ์šฐ ์ˆซ์ž๋ณด๋‹ค ํฐ ์ˆซ์ž  ๋Š” ๋ด‰์šฐ๋ฆฌ ์ง€์—ญ์ด๋‹ค. ๋ด‰์šฐ๋ฆฌ ์ง€์—ญ์ด ๋ช‡ ๊ฐœ ์žˆ

choi95.tistory.com

ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์ด์ „์— ํ’€์—ˆ๋˜ ๋ด‰์šฐ๋ฆฌ ๋ฌธ์ œ ํ’€์ด์™€ ํก์‚ฌํ•˜๋‹ค.

 

์ƒํ•˜์ขŒ์šฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ„๋„์˜ ์ด๋™ ๋ฐฉํ–ฅ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜์—ฌ ์ฃผ๊ณ  ํ˜„์žฌ ๋ณด๋“œ์˜ ์œ„์น˜์—์„œ ํ•ด๋‹น ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ์ƒํ•˜์ขŒ์šฐ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ธธ์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ ๋ด‰์šฐ๋ฆฌ ๋ฌธ์ œ๋Š” ์ค‘์ฒฉ for๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ขŒํ‘œ์˜ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ • ์ง“์—ˆ๋‹ค๋ฉด ์ด๋ฒˆ ๋ฌธ์ œ์—์„œ๋Š” ์žฌ๊ท€ ํ˜ธ์ถœ์„ ํ†ตํ•ด์„œ ํ•ด๋‹น ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑ์‹œ์ผฐ๋‹ค.

 

์ฝ”๋“œ

function solution(board) {
  let answer = 0;
  let dx = [-1, 0, 1, 0]; //์‹œ๊ณ„๋ฐฉํ–ฅ ์ˆœ์„œ๋Œ€๋กœ(12์‹œ, 3์‹œ, 6์‹œ, 9์‹œ)
  let dy = [0, 1, 0, -1]; 
  let n = board.length;

  function DFS(x, y) {
    if(x === n - 1 && y === n - 1) answer++;
    else {
      for(let i = 0; i < 4; i++) {
        let nx = x + dx[i];
        let ny = y + dy[i];
        if(nx >= 0 && nx < n && ny >= 0 && ny < n && board[nx][ny] === 0) { //out of range๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ํ˜„์žฌ ์œ„์น˜๊ฐ€ ์ฒ˜์Œ ์˜จ ์œ„์น˜์ผ ๊ฒฝ์šฐ
          board[nx][ny] = 1;
          DFS(nx, ny);
          board[nx][ny] = 0;
        }
      }
    }
  }

  board[0][0] = 1;
  DFS(0, 0);

  return answer;
}
let arr = [[0, 0, 0, 0, 0, 0, 0],
           [0, 1, 1, 1, 1, 1, 0],
           [0, 0, 0, 1, 0, 0, 0],
           [1, 1, 0, 1, 0, 1, 1],
           [1, 1, 0, 0, 0, 0, 1],
           [1, 1, 0, 1, 1, 0, 0],
           [1, 0, 0, 0, 0, 0, 0]];
console.log(solution(arr));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ