실수하기 좋은 전략 중 하나가 바로 가장 사전순으로 뒤에 오는 자식만을 사용하는 것이다. 만약 두 노드가 같은 알파벳을 가리키면 그 자식까지 가야하고 결국엔 리프노드까지 가서 비교를 수행해야한다. 이 상황에서 string 비교 연산을 그대로 사용하면 시간복잡도가 O(\(\mathrm{N}^2\)) 이 되어서 TLE 가 난다.
이를 간단하게 해결하는 방법은 현재의 Depth 에 한정지어서 문자를 비교를 하고 이에 따라서 탐색을 이어할지 말지를 결정하는 것이다. 아래 코드는 DFS 지만 BFS 를 이용해서도 동일한 작업을 수행할 수 있다. 오히려 BFS 로 푸는 것이 더 직관적이고 더 빠르다.
댓글남기기