Toy 28번 문제 clear(시간 초과문제 해결)Toy 28번 시간 초과문제 해결. 완전 탐색 알고리즘을 만들었을 때 시간 초과문제가 발생해서 경로 탐색에 있어서 어차피 탐색해봤자 맞지 않는 길을 탐색하는 케이스들을 조건문을 걸어서 걸러냈다.
알고리즘 문제는 일단 내가 이 문제를 실제 맞닥드렸다면 어떻게 해결했을까를 생각해보면 좋은 것 같다.
이번 문제를 예로 들어보면, A->B로 가는 경로를 찾을 때(모든 경로), 사람이라면 처음 보는 길을 일단 출발해서 갈래길이 나오면 일단 한쪽을 선택해서 쭉가보고, 가다가 막히면 돌아오고, 도착하면 그 길을 경로 중에 하나로 인식할 것이다.
여기서 나아가서, 자기가 걸어온 경로를 종이 적어가면서 찾는 것이다. 그러면 이미 왔던 경로는 가지 않을 것이고, 까먹지 않고, 일정한 순서대로 모든 경로를 찾을 수 있다.
이렇게 모든 경로를 찾은 다음에는 시야가 넓어졌을 것이기에 좀 더 효율적인 경로 탐색 알고리즘을 알아낼 수 있다.
이번의 경우 특정 포인트에 도착했을 때, 왼쪽으로 가면 벽이기 때문에 다시 돌아올 수 없다는 점을 이용해서 그 부분에 가서는 왼쪽으로 이동하지 않는 룰을 더한다.
이런식으로 어떻게 하면 좀 더 효율적으로 알고리즘을 설계할 수 있을까를 고민하면 점점 더 좋은 것을 찾을 수 있고, 굳이 경로를 직접 걸어보지 않아도 어떤 공식 만으로도 경우의 수를 찾을 수 있게 될 수 있을지도 모른다.