๐Ÿ”ฌComputer Science/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

์ด์ง„ํŠธ๋ฆฌ์ˆœํšŒ (DFS: ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)

hellohailie 2022. 6. 30. 10:00

 

DFS์—์„œ ๊ธฐ๋ณธ ์ค‘์˜ ๊ธฐ๋ณธ ์ฝ”๋“œ๋ฅผ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

 

์ „์œ„์ˆœํšŒ ์ถœ๋ ฅํ•˜๊ธฐ

โžฅ ๋‘ ๊ฐ€๋‹ฅ์œผ๋กœ ๋ป—๋Š” ์žฌ๊ท€ํ•จ์ˆ˜(์—ฌ๊ธฐ์„œ๋Š” DFS(v*2), DFS(v*2+1)) ์œ„์— ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. 

function solution(v){
  let answer;
  function DFS(v){
    if(v > 7) return;  // ์ข…๋ฃŒํ• ๊ฑฐ์•ผ
      else{
      console.log(v);  // ์—ฌ๊ธฐ๋Š” ๋ป—์„๊ฑฐ์•ผ! ์ผ๋‹จ ๋ถ€๋ชจ ์ถœ๋ ฅ
      DFS(v*2);        // ์™ผ์ชฝ ์ž์‹ ์ถœ๋ ฅ
      DFS(v*2+1);      // ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ถœ๋ ฅ
    }
  }
  DFS(v);
  return answer;
}

console.log(solution(1));

//
1
2
4
5
3
6
7

 

 

์ค‘์œ„์ˆœํšŒ ์ถœ๋ ฅํ•˜๊ธฐ

function solution(v){
  let answer;
  function DFS(v){
    if(v > 7) return;  // ์ข…๋ฃŒํ• ๊ฑฐ์•ผ
      else{
      DFS(v*2);        // ์™ผ์ชฝ ์ž์‹ ์ถœ๋ ฅ
      console.log(v);  //  ๋ถ€๋ชจ ์ถœ๋ ฅ
      DFS(v*2+1);      // ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ถœ๋ ฅ
    }
  }
  DFS(v);
  return answer;
}

console.log(solution(1));

//
4
2
5
1
6
3
7

 

 

ํ›„์œ„์ˆœํšŒ ์ถœ๋ ฅํ•˜๊ธฐ

function solution(v){
  let answer;
  function DFS(v){
    if(v > 7) return;  // ์ข…๋ฃŒํ• ๊ฑฐ์•ผ
      else{
      DFS(v*2);        // ์™ผ์ชฝ ์ž์‹ ์ถœ๋ ฅ
      DFS(v*2+1);      // ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ถœ๋ ฅ
      console.log(v);  //  ๋ถ€๋ชจ ์ถœ๋ ฅ
    }
  }
  DFS(v);
  return answer;
}

console.log(solution(1));

//
4
5
2
6
7
3
1

 

๐Ÿ˜ƒ ์ž˜๋ชป๋œ ๊ฐœ๋… ์ „๋‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €์˜ ์„ฑ์žฅ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค๐Ÿค“