정육면체 여섯 면의 구멍 배치가 주어질 때, 앞면과 뒷면의 필요한 위치에 구멍이 오도록 굴리는 최소 횟수를 구한다.
어려움8BFS시뮬레이션구현아직 제출이 없습니다시간 제한8초메모리 제한512 MB깊이 있는 이야기와 재미있는 퍼즐로 유명한 게임을 하고 있다. 주인공은 낯선 저택에 혼자 갇혔고 도움을 청할 방법이 없어서 스스로 빠져나가야 한다. 저택의 거의 모든 방에는 퍼즐이 걸려 있고, 퍼즐을 풀지 못하면 옆방으로 갈 수 없다.
어떤 방에는 주사위처럼 생긴 장치가 가운데 탁자 위에 놓여 있고, 벽에는 이런 안내가 적혀 있다.
이 정육면체는 원격 조종기다. 이것으로 멀리 떨어진 주사위 방을 조종한다. 그 방도 정육면체 모양이고, 여섯 면은 각각 3x3개의 단위 정사각형으로 이루어져 있다. 몇몇 정사각형에는 사람이 지나갈 만큼 큰 구멍이 뚫려 있다. 조종기는 굴러가는 도중에도 모서리 하나가 항상 탁자에 닿도록, 곧 앞뒤좌우 네 방향으로만 굴릴 수 있다. 조종기를 굴리면 주사위 방도 똑같이 굴러서 구멍의 위치가 바뀐다. 방을 지나가려면 방의 앞면과 뒷면 각각에서 아래쪽 세 칸 중 적어도 한 칸에 구멍이 있어야 한다.

그림 1: 주사위 방. 회색으로 칠한 부분이 앞면과 뒷면의 아래쪽 세 칸이다.

그림 2: 굴릴 수 있는 방향. 한 번의 회전은 앞, 뒤, 왼쪽, 오른쪽 중 한 방향으로 90도 굴리는 것이다. 제자리에서 세로축을 중심으로 도는 회전은 없다.
구멍의 현재 위치는 모니터로 볼 수 있다. 주사위 방으로 가기 전에 조종기를 굴려서 방을 지나갈 수 있게 만들어야 한다. 방을 굴리는 데는 시간이 걸리고 시간은 넉넉하지 않으니 회전 횟수를 최소로 줄여야 한다. 방을 지나갈 수 있게 만들려면 최소 몇 번을 굴려야 하는가?
입력은 여러 개의 데이터셋으로 이루어진다. 한 데이터셋은 3x3 문자 표 6개이고, 각 표는 방의 한 면에 뚫린 구멍의 처음 위치를 나타낸다. 각 문자는 * 또는 .이며 *가 구멍이다. 여섯 면은 앞면, 오른쪽면, 뒷면, 왼쪽면, 윗면, 아랫면 순서로 주어진다.
각 표의 방향은 아래 전개도를 따른다. 1이 앞면, 2가 오른쪽면, 3이 뒷면, 4가 왼쪽면, 5가 윗면, 6이 아랫면이다. 1, 2, 3, 4는 왼쪽부터 이 순서로 가로로 이어지고, 5는 1의 위에, 6은 1의 아래에 붙는다. 전개도를 접으면 1, 2, 3, 4에서 아래쪽 줄로 적힌 세 칸이 모두 방의 아래쪽 세 칸이 되고, 5의 아래쪽 줄과 6의 위쪽 줄이 앞면과 맞닿는다.

그림 3: 전개도. 회색 띠가 앞면과 뒷면의 아래쪽 세 칸이다.
데이터셋 다음에는 빈 줄이 하나 온다. 입력의 끝은 # 한 줄로 표시한다.
데이터셋마다 필요한 최소 회전 횟수를 한 줄에 하나씩 출력한다. 모든 데이터셋에는 답이 존재한다.