dev_eun
DFS 스택으로 구현, 루트 노드부터, 리프 노드부터 본문
루트 노드부터 순회
while (stack.length != 0) {
let [current, parent] = stack.pop();
visited[current] = true;
for (let child of nodeList[current]) {
if (!visited[child]){
// 수행할 일
stack.push([child, current]);
}
}
}
리프 노드부터 순회
while (stack.length != 0) {
let [current, parent] = stack.pop();
if (visited[current]) {
// 수행할 task
continue;
}
stack.push([current, parent]);
visited[current] = true;
for (let child of nodeList[current]) {
if (!visited[child]) stack.push([child, current]);
}
}
728x90
'공부 > 알고리즘 문제' 카테고리의 다른 글
[프로그래머스] 모두 0으로 만들기 (0) | 2021.05.03 |
---|---|
맨날 잊어버려서 적어 놓는 코테 Tips (0) | 2021.05.03 |
[프로그래머스] 괄호 회전하기 c++, javascript (0) | 2021.05.02 |
[프로그래머스] 기능개발 c++, javascript (0) | 2021.04.29 |
[프로그래머스] 순위 (0) | 2020.12.11 |