가능한 경우는 위와 같이 계속 늘어난다. 이 중에서, 최적의 경우를 찾아야 한다. 재귀로 쪼개서 풀면, 한쪽으로만 깊게 들어갈 수 있다. 대신, BFS를 이용하면, 같은 level의 것들을 모두 조사하고 다음 level로 넘어갈 수 있다.
visited가 없다고 하면, 시간 복잡도는 O( 4^L ) 이다. (L = 답의 level)
경우의 수가 exponential 하게 늘어나기 때문에, 메모리와 시간관리를 위해서, 한 줄 한 줄 세심히 짜야 한다.
얼핏보면 tree 같지만, cycle이 존재하기 때문에 tree는 아니고 graph이다.