less than 1 minute read

임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 깊이 우선 탐색(DFS, Depth First Search)을 합니다. 이 때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다.

입력 인자 : node

  • ‘value’, ‘children’ 속성을 갖는 객체 (Node)
  • ‘node.value’는 number 타입
  • ‘node.children’은 Node를 요소로 갖는 배열

출력

  • 배열을 리턴한다.

주의사항

  • 생성자 함수 (Node)와 메소드 (addChild)는 변경하지 않아야 한다.

Tree 구조에서 DFS (깊이 우선 탐색) 을 행하는 방법을 익힐 수 있는 알고리즘 문제로 보인다.

위와 같은 Tree 구조에서, root 1에서부터 DFS 탐색을 실행해야 한다.

보라색 Tree만을 DFS 탐색시 [1, 2, 4, 5, 3]이 리턴돼야 하고,

보라색 + 연두색 Tree를 DPS 탐색시 [1, 2, 4, 6, 5, 3, 7]이 리턴돼야 한다.

let dfs = function (node) {
  
};

// Node 객체를 만드는 함수
let Node = function (value) {
  this.value = value;
  this.children = [];
};

// Children Tree를 추가하는 함수
Node.prototype.addChild = function (child) {
  this.children.push(child);
  return child;
}; 

Updated: