BOJ-24479-깊이 우선 탐색 1-python

Ne5s·2022년 9월 14일
0

알고리즘 문제풀기

목록 보기
30/31
post-thumbnail
post-custom-banner

📖 문제

🎈 풀이

  • graph라는 연결리스트를 노드별 방문목록을 저장하기 위해 n+1개만큼 만들어주었다(0번 노드는 없으므로 무시하기위해)
  • 노드별 방문했는지 여부 및 방문순서를 젖아하기 위해 visited 배열을 만들었고 초기값은 0으로 주었다.
  • order는 방문순서로 첫 방문이 1이라 하였으니 1을 주었다.
  • 입력받는 연결정보를 graph에 저장해주고 연결정보를 정렬해주었다.
  • 시작노드로 dfs 함수를 호출한다. order를 전역변수로 사용하였고 방문하였을 때 visited 배열의 해당 인덱스에 방문순서로 값을 변경해주었다.
  • 연결정보를 보면서 방문하지 않았으면 재귀로 dfs 함수를 호출해주었다.

💻 코드

✨ 실행 결과

💊 다른 맞힌사람 코드

  • 재귀가 아닌 반복문으로 dfs를 구현한 것 같은데, 사용한 메모리양이 2배정도 차이가 난다.
  • stack을 사용하기 때문에 sort할 때 reverse를 True준 것 같다.
  • 반복문/재귀의 차이뿐 아니라 print문을 반복하지 않은 것도 영향이 있을 것 같다.
  • 아무튼 많이 배운 코드였다

💡 문제 출처

백준온라인저지

profile
초보개발자
post-custom-banner

0개의 댓글