- 2x3 크기의 보드에 1부터 5까지의 숫자와 0이 하나 들어있으며, 0을 이용하여 1 2 3, 4 5 0 로 rearranging 가능하는지 판별하는 문제 입니다. 🧩
- 브루트 포스로 모든 가능한 배열을 체크하는 것도 가능하지만 6!개의 가능성만 존재하여 충분히 효율적입니다. 🧮
- Breadth First Search를 이용하여 초기 상태에서 목표 상태까지의 최단 경로를 찾아 이동 횟수를 계산합니다. 🏃♀️
- BFS는 중복 상태를 방지하기 위해 hashing을 활용합니다. 🔁
- 시간 복잡도는 6! 개의 노드를 방문하며 각 노드를 검사하는 만큼 O(6!) * O(6) ~ O(6!) 입니다. 📈