[TIL] 21-08-03

0

TIL

목록 보기
44/104
post-thumbnail
post-custom-banner

알고리즘 스터디

  • 백준 1068 트리 O
  • 백준 12888 완전 이진 트리 도로 네트워크 O
  • 백준 2233 사과나무 O
  • 백준 1189 컴백홈 O
  • 백준 2261 좋은수열 O
  • 백준 19236 청소년 상어 ~

알고리즘 스터디

백준 1068 트리

백준 12888 완전 이진 트리 도로 네트워크

백준 2233 사과나무

백준 2261 좋은수열

⚡백준 19236 청소년 상어

📌참고자료

  • a 노드(시작 노드)를 방문
    -> 방문한 노드는 방문했다고 표시
  • a와 인접한 노드들을 차례로 순회
    -> a와 인접한 노드가 없다면 종료
  • a와 이웃한 노드 b를 방문했다면, a와 인접한 또 다른 노드를 방문하기 전에 b의 이웃 노드들을 전부 방문해야 한다
    -> b를 시작 정점으로 DFS를 다시 시작
  • b의 분기를 전부 완벽하게 탐색했다면 다시 a에 인접한 정점들 중에서 아직 방문이 안 된 정점을 찾는다
    -> 아직 방문이 안 된 정점이 없으면 종료
    -> 있으면 다시 그 정점을 시작 정점으로 DFS를 시작
  • 순환 호출을 이용한 DFS 의사코드(pseudocode)
void search(Node root) {
  if (root == null) return;
  // root 노드 방문
  visit(root);
  //방문한 노드를 표시
  root.visited = true; 
  // root 노드와 인접한 정점을 모두 방문
  for each (Node n in root.adjacent) {
    //방문하지 않은 정점을 찾는다
    if (n.visited == false) {
      //root 노드와 인접한 정점 정점을 시작 정점으로 DFS를 시작
      search(n); 
    }
  }
}
profile
Be able to be vulnerable, in search of truth
post-custom-banner

0개의 댓글