1000개짜리 완전그래프가 들어오면 첫 번째 노드를 볼 때 나머지를 다 stack에 넣은 다음, 두 번째 노드를 볼 때 또 나머지를 (거의) 다 다시 스택에 넣게 됩니다. 세 번째 노드를 볼때도 마찬가지로요. 그럼 스택의 길이가 대략 n^2/2즈음까지 커집니다. 스택의 각각의 원소에 대해 O(n)의 시간이 걸리니까 O(n^3)이 될 거 같네요.
그리고 input보다 sys.stdin.readline을 쓰면 입력이 좀 빨라집니다.
그리고 37번 줄 38번 줄은.. 별로 빠를 거 같진 않네요 append를 써보시죠.
yechance 4년 전
같은 코드를 C++로 작성했을때는 통과하는데, 파이썬은 시간 초과가 납니다..
진짜 일반적인 dfs를 구현했고,, 파이썬은 전역변수 사용이 저는 까다로워서 그냥 클래스로 만들어서 멤버변수에 접근하는 식으로 구현했는데
느립니다... 속도를 올리는 방법이 있을까요?
DFS 구현시 스택과 재귀의 속도차이는 얼마나 나나요??ㅠㅠㅠ