DFS 알고리즘
주어진 노드에서부터 시작하여, 탐색되는 순서대로 노드의 값을 저장한 배열을 리턴하는 문제.
DFS 알고리즘은
1. 한 노드에서 시작해서, 해당 노드의 자식 노드를 먼저 모두 탐색한 뒤,
2. 그 다음 자식 노드로 이동하여 같은 작업을 반복하는 방식으로 동작한다.
이 문제에서는 입력으로 주어진 노드에서부터 DFS 알고리즘을 적용해서,
노드의 값을 저장한 배열을 리턴해야 한다.
따라서, 재귀함수를 사용해서 각 노드의 자식 노드를 모두 탐색하면서,
탐색되는 순서대로 노드의 값을 저장한 배열에 추가한다.
코드를 이해하려면 먼저 Node 클래스와 addChild가 메서드가 어떻게 동작하는지 이해해야 한다.
코드를 보면서 설명을 달아보자.
let Node = function (value) {
this.value = value;
this.children = [];
};
Node Class는 'value'와 'children' 속성을 갖는 객체를 생성한다.