BOJ-24479-깊이 우선 탐색 1-python
📖 문제
🎈 풀이
- graph라는 연결리스트를 노드별 방문목록을 저장하기 위해 n+1개만큼 만들어주었다(0번 노드는 없으므로 무시하기위해)
- 노드별 방문했는지 여부 및 방문순서를 젖아하기 위해 visited 배열을 만들었고 초기값은 0으로 주었다.
- order는 방문순서로 첫 방문이 1이라 하였으니 1을 주었다.
- 입력받는 연결정보를 graph에 저장해주고 연결정보를 정렬해주었다.
- 시작노드로 dfs 함수를 호출한다. order를 전역변수로 사용하였고 방문하였을 때 visited 배열의 해당 인덱스에 방문순서로 값을 변경해주었다.
- 연결정보를 보면서 방문하지 않았으면 재귀로 dfs 함수를 호출해주었다.
💻 코드
✨ 실행 결과
💊 다른 맞힌사람 코드
- 재귀가 아닌 반복문으로 dfs를 구현한 것 같은데, 사용한 메모리양이 2배정도 차이가 난다.
- stack을 사용하기 때문에 sort할 때 reverse를 True준 것 같다.
- 반복문/재귀의 차이뿐 아니라 print문을 반복하지 않은 것도 영향이 있을 것 같다.
- 아무튼 많이 배운 코드였다
💡 문제 출처
백준온라인저지