(한붓 그리기)여행경로.

·2026년 6월 29일

핵심

  • 일직선으로 그리기 => 한붓그리기
    => 백트래킹.

dfs vs 백트래킹

  • dfs는 그래프를 탐색하는 방법론이고, 한 방향으로 나아가며 탐색하는 방법으로, 막다른길 도착하면(더이상 진행 못하면,)
  • 진행한 노드로 다시 돌아와서 방문하지 않은 노드를 향해 새로운 방향으로 설정해서 깊이있게 탐색함.

그런데 이것이 후퇴를 한다는 개념은 아니고, 방문체크 해제하지 않음.

  • 백트래킹은 그래프 탐색이 아닌 상태공간트리 로서 , 모든 경우의 수를 찾는 알고리즘으로,
    dfs와 동일하게 깊이있게 진행중에 조건이 맞지 않다면, 하위 노드 확인하지 않고, 바로 후퇴작업을 하고, 방향을 재설정해서 탐색함.

후퇴할때 방문체크를 해제해서 , 새로운 경우의 수 찾을 때 다시 활용함.

=> 아래에 dfs그림과 백트래킹 진행 그림이 있다.

이 문제의 핵심은 이부분.

  • dfs의 경우, 일직선으로 진행하지 않는 그래프다.

  • dfs를 하게 되면, 1->2->3->4 가 출력된다. (1로 다시 복귀해서)
    -> 일직선이 아니다!!

  • 그런데 문제의 요구하는 바는 그래프가 이렇게 되어있어야 함.

  • -> 즉 이 문제는 방향성을 가지고 각 정점들이 서로 일직선으로 연결되어 있는 경로를 만드는 것이다.

  • 그에 반해서 dfs는 일직선이 아니다.

  • 일직선으로 되어 있는 경로를 찾은 작업인 백트래킹을 해야 한다!

차이를 분명하게 하자.

  • [a,b] 는 a에서 b로 가는 항공권이고, 이것을 모두 사용해야 하고, 방문하 수 없는 경우가 없으므로,
    => 일직선 형태인 한붓 그리기로 접근해야 함.

한붓 그리기

profile
🔥🔥🔥

0개의 댓글