1 용어와 기본 동작 정리

먼저 이 글에서 쓰인 용어를 정리한다.

  • 큐브의 코너에 있는 8개의 조각을 코너조각이라고 하며 모서리에 있는 12개의 조각을 모서리조각이라고 한다. 각 면의 중앙에 있는 것을 가운데조각이라고 한다.
  • 큐브는 6개의 면으로 되어 있고 각 면을 가운데조각 색으로부터 흰면, 노란면, 빨간면, 파란면, 주황면, 초록면으로 칭한다.
  • 색과 관계없이 큐브가 놓인 상태로 각 면을 말할 때는 윗면, 아랫면, 왼쪽면, 오른쪽면, 앞면, 뒷면으로 칭하고 뒤 네 면은 옆면이라고 묶어 부른다.
  • 큐브 위아래, 전후, 좌우 모두 세 개의 줄로 이루어져 있다. 위부터 차례대로 윗줄, 가운뎃줄, 아랫줄이라고 부른다. 보통 흰면을 윗면으로 두고 위부터 아래로 순차적으로 맞추므로 큐브를 어떻게 바라본다는 말이 없으면 윗줄은 흰면을 포함하는 줄이다.
  • 한 면에서 모든 모서리조각의 색이 가운데조각의 색과 같을 때 이를 십자라고 부른다.
  • 한 코너조각은 세 개의 모서리조각과 인접해 있고 한 모서리조각은 두 개의 코너조각과 인접해 있다. 코너조각과 코너조각이 인접해 있다는 말은 공동으로 인접한 모서리조각이 있다는 말이고 모서리조각과 모서리조각이 인접해 있다는 말은 공동으로 인접한 코너조각이 있다는 말이다.
  • 한 줄에서 코너조각과 코너조각이 인접해 있지 않으면 마주 본다고 표현한다. 모서리조각과 모서리조각이 인접해 있지 않으면 마주 본다고 표현한다.
  • 조각은 조각 실물을 의미하고 조각이 차지하는 있는 위치는 자리라고 표현한다.

다음은 기본 동작이다.

  • F(ront): 앞면을 시계반대방향으로 90도 돌린다.
  • B(ack): 뒷면을 시계반대방향으로 90도 돌린다.
  • U(p): 윗면을 시계반대방향으로 90도 돌린다.
  • D(own): 아랫면을 시계반대방향으로 90도 돌린다.
  • L(eft): 왼쪽면을 시계반대방향으로 90도 돌린다.
  • R(ight): 오른쪽면을 시계반대방향으로 90도 돌린다.
  • x: 큐브 전체를 앞면 벡터(앞면에 수직)를 축으로 시계반대방향으로 90도 돌려 잡는다.
  • y: 큐브 전체를 오른쪽면 벡터를 축으로 시계반대방향으로 90도 돌려 잡는다.
  • z: 큐브 전체를 윗면 벡터를 축으로 시계반대방향으로 90도 돌려 잡는다.

각 동작에 2를 붙이면 그 동작을 연속해서 두 번 하는 동작을 뜻하고 180도 돌리는 것과 같다. 동작에 '(prime)을 붙이면 역동작을 의미한다. 시계반대방향 대신 시계방향으로 돌리는 것이다.

2 윗줄 십자 맞추기

흰색을 포함하는 모서리조각을 하나씩 옆면 가운데조각 색에 맞도록 맞춰갈 수도 있지만 일단 흰색 십자를 맞추고 나서 옆면 색에 맞춰 조각을 옮겨서 맞출 수도 있다.

옆면 색에 상관없이 윗면 흰색 십자 맞추기를 하자. 그런 후에 모서리조각의 옆면 색을 적어도 하나를 맞추자. 그럼 다음의 경우 중 하나가 된다.

  1. 모두 맞는 경우
  2. 인접한 두 개의 모서리조각이 맞는 경우
  3. 마주 보는 두 개의 모서리조각이 맞는 경우
  4. 한 개의 모서리조각만 맞는 경우

4번의 경우는 윗면을 90도 돌려서 맞은 조각의 옆면 색과 같은 계열의 다른 색을 맞추면 2번의 경우로 된다. 예컨대, 빨간색이 맞았다면 따뜻한 색 계열 다른 색인 주황색을 맞추면 된다.

2번 십자의 옆면 색 맞추기는 흰면이 앞에 오고 십자 중 맞춰진 것이 왼쪽과 아래에 오게 잡은 후에 다음 동작을 수행하면 된다.

U-F-U'-F'-U

4번 십자는 맞춰진 면을 왼쪽과 오른쪽에 오게 한 후에 다음 동작을 수행하면 된다.

U-F2-U'-F2-U

3 윗줄 코너조각과 가운뎃줄 맞추기

윗줄 코너조각과 가운뎃줄 맞추기를 가능하면 동시에 한다. 그리고 가운뎃줄 중 한 모서리조각 자리는 맞춰지지 않고 노란색이 포함된 모서리조각이 들어 있어야 한다. 나중에 이것을 맞추면서 아랫줄 코너조각 자리를 맞추기 위함이다.

3.1 동시에 맞추기

아랫줄에 흰색이 포함된 코너조각이 흰색이 옆면에 오도록 되어 있다면 다음의 경우에 동시에 그 코너조각과 가운뎃줄 중 하나를 맞출 수 있다.

  1. 코너조각의 흰색을 제외한 나머지 두 색이 인접한 모서리조각(코너조각의 흰 면과 마주보는 자리에 있는 모서리조각)의 색과 같은 색으로 이어지는 경우
  2. 코너조각과 인접한 모서리조각의 색이 하나만 같은 색이고 그 색이 엇갈리는 경우
  3. 코너조각과 인접한 모서리조각의 색이 모두 다른 색이고 같은 계열의 색이 이어지는 경우
  4. 코너조각의 흰 면을 위로 하고 윗면을 90도 돌려서 코너조각이 다시 앞면에 위치하게 되었을 때 1번의 경우가 되는 경우. 즉, 코너조각의 ㄴ자나 역ㄴ자 끝 자리에 코너조각과 같은 색이 엇갈리게 되어 있는 경우(모서리조각 옆면/아랫면 색이 코너조각의 아랫면/옆면 색과 같은 경우)
  5. 4번처럼 했을 때 2번의 경우가 되는 경우
  6. 4번처럼 했을 때 3번의 경우가 되는 경우

이런 경우를 맞추기 위해서 흰면을 위로 가게 두고 생각하자. 일단 맞추려는 아랫줄에 있는 코너조각의 흰색이 아닌 옆면 색이 같은 색의 옆면에 놓이도록 아랫줄을 돌린다.

그런 후에 1번의 경우에는 코너조각의 흰 면 방향으로 아랫줄을 돌리고 아까 맞췄던 옆면을 맞출 코너조각 자리가 아래로 내려오게 90도 돌리고 아랫줄을 아까와 반대 방향으로 돌린 후에 옆면을 다시 돌린다. 2번의 경우에는 코너조각과 인접한 모서리 조각이 공통으로 가진 색 방향으로 윗줄과 아랫줄을 90도 돌린다. 그런 후에 1번의 경우처럼 맞춘다. 3번의 경우에는 윗줄과 아랫줄을 180도 돌린 후에 1번의 경우처럼 맞춘다.

4번의 경우에는 맞추려는 코너조각의 흰 면이 위치하는 옆면을 90도 돌려서 윗줄에 있던 코너조각이 들어갈 자리를 내려 오게 한 후에 맞추려는 코너조각을 그 자리에 넣고 다시 되돌린다. 5번의 경우에는 코너조각과 인접한 모서리조각이 공통으로 가진 색 방향으로 윗줄과 아랫줄을 90도 돌린다. 그런 후에 4번의 경우처럼 맞춘다. 6번의 경우에는 윗줄과 아랫줄을 180도 돌린 후에 4번의 경우처럼 맞춘다.

흰색이 포함된 코너조각이 윗줄에 있을 때는 1~6번 중 하나가 되도록 만든 후에 맞출 수 있다.

3.2 가운뎃줄 모서리조각 맞추기

동시에 맞출 수 없을 때는 되도록이면 노란색이 포함된 조각으로 가운뎃줄 모서리 조각 자리를 채운다. 윗줄 코너조각을 세 개만 맞추고 하나를 맞추지 않은 상태에서 가운뎃줄 모서리조각을 다음의 방법으로 맞춰 간다.

안 맞춰진 가운뎃줄 모서리조각 자리에 들어갈 조각이 아래줄에 있는 것을 확인하고 윗줄을 돌려 안 맞춰진 코너조각 자리가 그 가운뎃줄 모서리조각 자리 위에 오도록 한다. 그런 후에 아랫줄을 돌려서 그 조각을 조각의 옆면 색과 옆면 색이 다르게 위치시킨다. 맞출 자리는 포함하고 맞출 조각은 포함하지 않는 옆면을 돌려 자리를 아랫줄에 위치시키고 아랫줄을 돌려 그 자리에 조각을 맞추고 옆면을 되돌린다.

이렇게 가운뎃줄 모서리조각을 맞추다가 마지막 하나가 남았을 때 맞추지 않은 윗줄 코너조각 자리와 가운뎃줄 모서리조각 자리를 인접하게 한 후에 윗줄 코너조각을 맞추면서 가운뎃줄 모서리조각을 맞추지 않고 노란색이 포함된 조각이 들어가게 한다. 즉, 가운뎃줄 모서리조각 하나는 맞추지 않고 남겨 둔다.

4 아랫줄 코너조각 위치 맞추기

먼저 몇가지 동작을 알아 보자. 간단하게 설명하면 윗줄(흰면) 코너조각을 아랫줄로 보냈다가 다시 원래 자리로 보내는 동작이다. 역동작까지 총 8가지가 있다.

아래 동작 표기는 노란면을 정면으로 보는 시점에서의 표기이다.

  1. 왼쪽_90: U-F-U'-F'-L'-F'-L
  2. 오른쪽_90: U'-F'-U-F-R-F-R'
  3. 왼쪽_180: U-F2-U'-F2-L'-F'-L
  4. 오른쪽_180: U'-F2-U-F2-R-F-R'
  5. 왼쪽’_90: L'-F-L-F-U-F'-U'
  6. 오른쪽’_90: R-F'-R'-F'-U'-F-U
  7. 왼쪽’_180: L'-F-L-F2-U-F2-U'
  8. 오른쪽’_180: R-F'-R'-F2-U'-F2-U

위에서 보는 바와 같이 왼쪽’-X와 오른쪽’-X는 각각 왼쪽-X와 오른쪽-X의 역동작이다.

위 동작들은 아랫줄 코너조각 위치를 맞출 때만 필요한 것이고 다음 동작들은 그 이후에 큐브를 완전히 맞출 때도 필요한 동작들이다. 다음에도 동작을 정의할 텐데 그 동작들은 이 동작으로부터 파생된 것들이다.

  1. A_L: U-F-U'-F-U-F2-U'-F2
  2. A_R: U'-F'-U-F'-U'-F2-U-F2
  3. A_L’: F2-U-F2-U'-F'-U-F'-U'
  4. A_R’: F2-U'-F2-U-F-U'-F-U

A_L'A_L의 역동작인데 A_R을 이용해서 표현할 수도 있다. A_L' = D-A_R-D'이다. 마찬가지로 A_R' = D'-A_L-D이다.

현 상태는 가운뎃줄 모서리조각 하나만 맞춰지지 않고 그 자리에 들어갈 조각이 아랫줄에 있는 상태이다. 이 상태에서 아랫줄 코너조각의 위치를 맞추면서 가운뎃줄 모서리조각(이하 E조각)도 맞추는 방법을 설명한다. 일단 아랫줄 코너조각 하나의 위치를 맞춰 보면 1) 다 맞거나 2) 하나만 맞거나 3) 인접한 두 개만 맞거나 4) 마주보는 두 개만 맞는다. 하나만 맞는 경우는 90도 돌려 보면 인접한 두 개만 맞는 경우가 된다.

코너조각들의 위치가 다 맞은 경우에는 E조각을 E조각의 색 중 노란면에 위치한 색의 면과 반대편에 위치하도록 아랫줄을 돌린다. 그리고나서 노란면을 보면서 E조각이 위로 가게 큐브를 돌려 잡고 안 맞은 가운뎃줄 모서리조각 자리가 왼쪽에 있으면 L-A_L-L', 오른쪽에 있으면 R'-A_R-R을 수행한다.

인접한 두 개만 맞은 상태에서는 E조각이 어디에 위치해 있는지를 확인해야 한다. 1) 맞은 두 코너조각 사이에 있거나, 2) 맞지 않은 두 코너조각 사이에 있거나, 3) 그 밖에 있다.

맞은 두 코너조각 사이에 E조각이 있다면 E조각을 E조각의 색 중 노란면에 위치한 색의 면과 반대편에 위치하도록 아랫줄을 돌리고 노란면을 보면서 E조각이 아래에 오도록 큐브를 돌려 잡는다. 그리고나서 안 맞은 가운뎃줄 모서리조각 자리가 왼쪽에 있으면 왼쪽_90, 오른쪽에 있으면 오른쪽_90을 수행한다.

맞지 않은 두 코너조각 사이에 E조각이 있다면 앞의 경우처럼 하면 가운뎃줄 모서리조각은 맞춰지지만 아랫줄 코너조각들이 마주보는 두 개만 맞게 된다. 이 때 L-왼쪽_90-L'이나 R'-오른쪽_90-R을 추가적으로 수행해 주면 코너조각들의 위치가 맞춰진다.

그 밖의 위치에 있으면 앞의 경우처럼 E조각을 아랫줄을 돌려 위치시키고 노란면을 바라보면서 안 맞춰진 가운뎃줄 자리는 위에, E조각은 옆에 오도록 큐브를 돌려 잡는다. 그리고 안 맞은 가운뎃줄 모서리조각 자리가 왼쪽에 있으면 왼쪽'_90, 오른쪽에 있으면 오른쪽'-90을 수행한다. 그리고나서 코너조각을 맞춰보았을 때 다 맞춰지지 않았다면 L-왼쪽_90-L'이나 R'-오른쪽_90-R을 추가적으로 수행해 주면 코너조각들의 위치가 맞춰진다.

마지막으로 마주보는 코너조각 두 개만 맞은 경우에는 앞은 경우들과 다르게 E조각을 아랫줄을 돌려 E조각의 노란면에 있지 않은 색의 옆면 반대편으로 보낸다. 그리고나서 노란면을 바라보면서 E조각은 옆에 있고 맞추지 않은 가운뎃줄 자리는 아래에 오게 큐브를 돌려 잡는다. 이 상태에서 맞추지 않은 가운뎃줄 자리가 왼쪽에 있으면 L-F2-왼쪽_180-L', 오른쪽에 있으면 R'-F2-오른쪽_180-R을 수행한다.

5 아랫줄 맞추기

위에서 정의했던 A_L, A_R, A_L', A_R'을 응용해서 유용한 동작을 정의할 수 있다.

다음의 동작들은 A_L 등과 다르게 모서리조각의 색을 뒤집는다.

  1. B_L: D'-R'-A_L-R-D
  2. B_R: D-L-A_R-L'-D'
  3. B_L’: D'-R'-A_L'-R-D
  4. B_R’: D-L-A_R'-L'-D'
  5. C_L: y'-L'-R-A_L-R'-L-y
  6. C_R: y'-L'-R-A_R-R'-L-y
  7. C_L’: y'-L'-R-A_L'-R'-L-y
  8. C_R’: y'-L'-R-A_R'-R'-L-y

이 동작들의 효과를 파악하고 적절히 이용하면 큐브를 완전히 맞출 수 있다. A_L 동작은 코너조각 세 개(좌우상단과 우하단)를 꼭지점을 기준으로 시계반대방향으로 1/3만큼 제자리회전시킨다. A_L'은 같은 코너조각을 2/3만큼 회전시킨다. A_R은 코너조각 세 개(좌우상단과 좌하단)를 시계반대방향으로 2/3만큼 회전시키고 A_R'은 같은 코너조각을 1/3만큼 회전시킨다.

파생된 동작들도 비슷한 효과를 주는데 제자리회전하는 코너조각이 다르다. A_L 등을 수행할 때 어떤 코너조각이 좌우상단, 좌우하단에 위치해 있는지 보면 쉽게 파악이 가능하다. B_LB_L'은 좌우하단과 좌상단이 제자리회전하고, B_RB_R'은 좌우하단과 우상단이 제자리회전한다. C 동작들은 해당하는 A 동작들과 같은 코너조각을 제자리회전시킨다.

A 동작들은 코너조각을 제자리회전시키는 것 외에 위 세 모서리조각의 색을 뒤집지 않고 이동도 시킨다. A_LA_R'은 시계반대방향으로 순환시키고 A_L'A_R은 시계방향으로 순환시킨다.

B 동작들도 모서리조각 순환방향은 해당 A 동작들과 같지만 다른 세 모서리조각이 순환한다. B_LB_L'은 왼쪽에 있는 세 조각이 순환하고 B_RB_R'은 오른쪽에 있는 세 조각이 순환한다. 순환 외에 색도 뒤집는데 B_LB_R은 동작 전에 위에 있던 조각을 제외한 두 조각의 색을 뒤집고, B_L'은 왼쪽에 있던 조각을 제외한 두 조각, B_R'은 오른쪽에 있던 조각을 제외한 두 조각의 색을 뒤집는다.

C 동작들은 모서리조각 순환방향이 해당 A 동작들과 반대이다. 그리고 아래에 있는 세 모서리조각이 순환한다. C_LC_R'은 세 조각 중 동작 전에 왼쪽에 있던 조각을 제외한 두 조각의 색을 뒤집고, C_L'C_R은 오른쪽에 있던 조각을 제외한 두 조각의 색을 뒤집는다.

B_L 동작에 의한 상태 변화 중 우하단 코너조각 대신에 우상단 코너조각을 제자리회전시킬 수 있다. R-B_L-R'이 그것인데 이것을 B2_L로 명명한다. 마찬가지로 B2_RL'-B_R-L이다.

위 동작을 두 번 이용한 동작들을 알고 있으면 유용하다.

  1. A_L-A_R: 하단의 두 코너조각을 제자리회전시키는데 좌하단은 2/3만큼, 우하단은 1/3만큼 제자리회전시킨다.
  2. L'-A_L-A_R-L: 좌상단, 우하단 코너조각을 각각 2/3, 1/3만큼 제자리회전시킨다.
  3. A_L-x2-C_L-x2: 위와 오른쪽 모서리조각의 색을 뒤집고 좌상단, 우상단, 좌하단, 우하단 코너조각을 각각 2/3, 1/3, 1/3, 2/3만큼 제자리회전시킨다.
  4. A_R-x2-C_R-x2: 위와 왼쪽 모서리조각의 색을 뒤집고 좌상단, 우상단, 좌하단, 우하단 코너조각을 각각 2/3, 1/3, 1/3, 2/3만큼 제자리회전시킨다.
  5. A_L-x2-C_R'-x2: 위와 오른쪽 모서리조각의 색을 뒤집고 좌상단, 우상단, 좌하단, 우하단 코너조각을 각각 1/3, 2/3, 1/3, 2/3만큼 제자리회전시킨다.
  6. A_R-x2-C_L'-x2: 위와 왼쪽 모서리조각의 색을 뒤집고 좌상단, 우상단, 좌하단, 우하단 코너조각을 각각 1/3, 2/3, 1/3, 2/3만큼 제자리회전시킨다.
  7. x2-C_R-x2-A_L': 위와 오른쪽 모서리조각의 색을 뒤집고 좌상단, 우상단, 좌하단, 우하단 코너조각을 각각 2/3, 1/3, 2/3, 1/3만큼 제자리회전시킨다.
  8. x2-C_L-x2-A_R': 위와 왼쪽 모서리조각의 색을 뒤집고 좌상단, 우상단, 좌하단, 우하단 코너조각을 각각 2/3, 1/3, 2/3, 1/3만큼 제자리회전시킨다.
  9. x-B_L'-x'-A_R': 좌우 모서리조각의 색만 뒤집는다.
  10. x-B_L'-x'-A_L: 좌우 모서리조각의 색을 뒤집고 좌하단, 우하단 코너조각을 각각 2/3, 1/3만큼 제자리회전시킨다.
  11. A_L'-x-B_L-x': 좌우 모서리조각의 색을 뒤집고 좌하단, 우하단 코너조각을 각각 1/3, 2/3만큼 제자리회전시킨다.
  12. x-B_L-x'-A_R: 위와 왼쪽 모서리조각의 색만 뒤집는다.
  13. x-B_L-x'-A_L': 위와 왼쪽 모서리조각의 색을 뒤집고 좌하단, 우하단 코너조각을 각각 1/3, 2/3만큼 제자리회전시킨다.
  14. A_L-x-B_L'-x': 위와 왼쪽 모서리조각의 색을 뒤집고 좌하단, 우하단 코너조각을 각각 2/3, 1/3만큼 제자리회전시킨다.
  15. x'-B_R-x-A_R': 위와 오른쪽 모서리조각의 색을 뒤집고 좌하단, 우하단 코너조각을 각각 1/3, 2/3만큼 제자리회전시킨다.
  16. A_R-x'-B_R'-x: 위와 오른쪽 모서리조각의 색을 뒤집고 좌하단, 우하단 코너조각을 각각 2/3, 1/3만큼 제자리회전시킨다.
  17. x-A_L-x-A_R-x2: 위 세 모서리조각들을 시계반대방향으로 순환시킨다.
  18. x'-A_R-x'-A_L-x2: 위 세 모서리조각들을 시계방향으로 순환시킨다.

2번 동작은 1번 동작의 응용이다. 1번 동작은 두 코너조각만 제자리회전시키므로 왼쪽면을 돌려서 좌상단에 있는 코너조각을 1번 동작에 의해서 바뀌도록 위치시킨 후에 1번 동작을 수행하는 것이다. 이처럼 다른 동작들도 면들을 적절하게 회전시킨 후에 동작을 하면 다른 코너조각들을 제자리회전시킬 수 있다.

위에는 넣지 않았지만 마주보는 두 모서리조각을 뒤집고 네 코너조각을 모두 제자리회전시키는 것도 A, B, C 동작을 두 번 이용해서 가능하다. 다음 절에서 언급하는 프로그램에 의하면 한 가지는 세 번의 동작이 필요하다. 그 한 가지는 뒤집어지는 모서리조각 양쪽의 코너조각들이 서로 다른 제자리회전을 하는 것이다. 다른 말로, 좌우 모서리조각을 뒤집고 좌상단, 우상단, 좌하단, 우하단 코너조각을 각각 1/3, 1/3, 2/3, 2/3만큼(또는 2/3, 2/3, 1/3, 1/3만큼, 큐브를 돌려보면 같은 것) 제자리회전하는 것이다. 이것도 면들을 적절하게 돌려서 하면 복잡하지만 가능하다. R'-U'-B'-D' 수행 후에 위의 4번 A_R-x2-C_R-x2를 하고 다시 D-B-U-R로 되돌리면 좌상단, 우상단, 좌하단, 우하단 코너조각을 각각 1/3, 1/3, 2/3, 2/3만큼 제자리회전시키고 좌우 모서리조각 색을 뒤집는다.

6 경우의 수

아랫줄 코너조각의 위치가 맞았을 때 큐브를 맞추기 위해 구별할 큐브의 상태 수는 몇 개일까? 큐브를 맞추는 데는 절대적인 큐브 조각 색이 중요하지 않다. 네 가지 방향에 대해 대칭성을 가지고 있어서 상대적인 큐브 조각의 위치와 제자리회전상태로 중복되지 않는 상태를 표현할 수 있다.

상태는 세 가지 상태집합의 곱집합의 원소로 표현할 수 있다.

  1. 코너조각의 제자리회전 상태: 좌상단, 좌하단, 우하단, 우상단 순으로 0, 1, 2 숫자를 나열하여 표현.
  2. 모서리조각의 위치 상태: 위, 왼쪽, 아래, 오른쪽 순으로 모서리조각의 위치를 0, 1, 2, 3 숫자를 나열하여 표현하는데 해당 자리에 모서리조각이 맞으면 0, 맞은 편 조각이 왔으면 2, 왼 편 조각이 왔으면 1, 오른 편 조각이 왔으면 3이다.
  3. 모서리조각의 제자리회전 상태: 위, 왼쪽, 아래, 오른쪽 순으로 모서리조각의 제자리회전 상태를 0, 1 숫자를 나열하여 표현하는데 노란색이 노란면에 보이면 0, 아니면 1이다.

네 코너조각의 제자리회전 상태는 27 가지로 표현할 수 있는데 큐브의 방향을 먼저 코너조각의 제자리회전 상태로 정한다면 8 가지(“0000”, “0120”, “0210”, “0102”, “1011”, “2202”, “1122”, “1212”)만 필요하다. 예를 들어, “0120”, “1200”, “2001”, “0012” 네 가지 경우는 큐브의 방향을 “0120”이 되게 정하면 “0120”으로 표현되는 것이다.

네 모서리조각의 위치 상태는 12 가지로 표현할 수 있다. 4 개의 조각이 네 자리를 채우는 경우의 수는 4! = 24이지만 모서리조각 중 3 조각의 순환으로만 자리를 바꿀 수 있기 때문에 짝수 자리바꿈(even permutations, 1 -> 2 -> 3 -> 1 순환은 1 <-> 2, 2 <-> 3 자리바꿈을 한 것과 같음)만 허용되어서 12 가지(“0000”, “0112”, “1120”, “1201”, “2011”, “0233”, “2330”, “3302”, “3023”, “1313”, “3131”, “2222”)이다.1 큐브의 방향을 먼저 이것으로 정한다면 5 가지만 필요한데 8/27이 5/12보다 작기 때문에 코너조각의 제자리회전 상태로 정하는 것이 생각하여야 할 경우의 수가 적어서 더 좋다.

모서리조각의 제자리회전 상태는 8 가지로 표현할 수 있다. 각 조각 상태를 0, 1/2로 표현하고 4 조각의 상태를 더했을 때 정수가 되는 상태만 허용이 된다. 따라서 “0000”, “0011”, “0101”, “1111” 네 가지를 네 방향으로 돌린 것이 되는데 “0000”과 “1111”은 네 방향으로 돌린 것이 모두 같고, “0101”은 두 방향씩 같기 때문에 총 8 가지(“0000”, “0011”, “0110”, “1100”, “1001”, “0101”, “1010”, “1111”)가 된다.

따라서 다 맞춘 상태는 “0000 0000 0000”이고 8 * 12 * 8 = 768이므로 총 768 가지가 되는데 이 중에도 큐브를 돌려보면 같게 되는 게 존재한다. 이것을 알아내기에는 머리가 아파서 프로그램을 짰다. 프로그램에 의하면 총 662 가지이다.

두 상태가 좌우반전 관계에 있으면 한 상태를 푸는 방법을 알면 다른 상태도 좌우반전 동작을 통해 풀 수 있다. 서로 다른 두 상태가 좌우반전의 관계에 있는 것은 몇 가지일까? 이것도 프로그램을 통해 알아보니 301 쌍이 존재한다. 그래서 662 - 301 = 361인데 한 가지는 다 맞춰진 경우이므로 제외하면 360 경우만 푸는 방법을 알면 된다.

이것만 알아내려고 프로그램을 짰는데 어쩌다 보니 최소 횟수로 푸는 방법이 무엇이고 모든 경우를 최대 몇 번만에 풀 수 있는지도 알아냈다. 이 프로그램을 짜기 전에는 그냥 모든 경우를 최대 3 번의 A, B, C 동작으로 풀 수 있을 줄 알았는데 아니었다. 세 가지 상태는 최소 4 번의 동작으로 풀 수 있다.

0004: 0000 0000 1111 Parity_0 to Self
   (4) | A_L_0_0 -> 1011 3302 1111 | A_R_0_0 -> 2202 1201 1111 | A_L_prime_0_1 -> 2202 1120 1111 | A_R_prime_0_3 -> 1011 3023 1111 | B_L_0_2 -> 1011 3023 0101 | B_R_0_2 -> 2202 1120 0101 | B_L_prime_0_3 -> 2202 1201 0011 | B_R_prime_0_1 -> 1011 3302 0110 | B2_L_0_3 -> 1011 3302 1010 | B2_R_0_1 -> 2202 1201 1010 | B2_L_prime_0_0 -> 2202 1120 1001 | B2_R_prime_0_0 -> 1011 3023 1100 | C_L_0_0 -> 1011 0112 1001 | C_R_0_0 -> 2202 0233 1100 | C_L_prime_0_1 -> 2202 3023 0110 | C_R_prime_0_3 -> 1011 1120 0011
--
0030: 0000 2222 1111 Parity_0 to Self
   (4) | A_L_0_0 -> 1011 1120 1111 | A_R_0_0 -> 2202 3023 1111 | A_L_prime_0_1 -> 2202 3302 1111 | A_R_prime_0_3 -> 1011 1201 1111 | B_L_0_2 -> 1011 1201 0101 | B_R_0_2 -> 2202 3302 0101 | B_L_prime_0_3 -> 2202 3023 0011 | B_R_prime_0_1 -> 1011 1120 0110 | B2_L_0_3 -> 1011 1120 1010 | B2_R_0_1 -> 2202 3023 1010 | B2_L_prime_0_0 -> 2202 3302 1001 | B2_R_prime_0_0 -> 1011 1201 1100 | C_L_0_0 -> 1011 2330 1001 | C_R_0_0 -> 2202 2011 1100 | C_L_prime_0_1 -> 2202 1201 0110 | C_R_prime_0_3 -> 1011 3302 0011
--
0612: 1212 0000 1111 Parity_0 to Self
   (4) | A_L_1_0 -> 0102 3302 1111 | A_R_3_1 -> 0102 1120 1111 | A_L_0_3 -> 2202 3023 1111 | A_R_0_1 -> 1011 1120 1111 | A_L_prime_0_2 -> 0102 0112 1111 | A_R_prime_0_3 -> 0102 3023 1111 | A_L_prime_1_2 -> 1011 0112 1111 | A_R_prime_3_2 -> 2202 0233 1111 | B_L_1_2 -> 0102 3023 0101 | B_R_3_3 -> 0102 0112 1010 | B_L_0_1 -> 2202 0233 1010 | B_R_0_3 -> 1011 0112 1010 | B_L_prime_0_0 -> 0102 1120 1001 | B_R_prime_0_1 -> 0102 3302 0110 | B_L_prime_1_0 -> 1011 1120 1001 | B_R_prime_3_0 -> 2202 3023 1100 | B2_L_0_3 -> 0102 3302 1010 | B2_R_0_2 -> 0102 1120 0101 | B2_L_1_2 -> 2202 3023 0101 | B2_R_3_2 -> 1011 1120 0101 | B2_L_prime_1_1 -> 0102 0112 1100 | B2_R_prime_3_0 -> 0102 3023 1100 | B2_L_prime_0_1 -> 1011 0112 1100 | B2_R_prime_0_3 -> 2202 0233 1001 | C_L_1_0 -> 0102 0112 1001 | C_R_3_1 -> 0102 3023 0110 | C_L_0_3 -> 2202 1120 0011 | C_R_0_1 -> 1011 3023 0110 | C_L_prime_0_2 -> 0102 3302 0011 | C_R_prime_0_3 -> 0102 1120 0011 | C_L_prime_1_2 -> 1011 3302 0011 | C_R_prime_3_2 -> 2202 1201 0110

알아 보기 힘들 수도 있지만 계산결과에서 A, B, C, D 동작 최소 횟수로 푸는 방법을 확인할 수 있다. 동작명 뒤에 붙은 숫자 두 개는 각각 동작 전 수행할 x 횟수, 동작 후 수행할 x 횟수이다. 그러면 그 뒤에 오는 상태가 된다. D_double 동작은 위에서 설명한 L'-A_L-A_R-L이다.

7 두뇌회전 연습

위에서 얘기한 대로 세 가지 경우를 제외하고 3번의 A, B, C 동작으로 아랫줄 맞추기를 할 수 있다. 3번 이하의 동작으로 아랫줄을 맞추려고 하다보면 조각들이 어떻게 돌아가고 다음에 어떤 동작을 해야 하는지 계산해야 하기 때문에 두뇌를 많이 쓰게 된다. 그리고 3번 이하의 동작으로 맞추면 성취감과 통쾌함을 느낄 수 있다.

두 번의 동작으로 맞추기 정도는 계산이 쉽지만 세 번으로 맞춰야 할지도 모르는 상태를 맞추려면 어떻게 해야 할지 막막하다. 이럴 경우 위에서 설명한, “A, B, C 동작을 두 번 이용한 동작”으로 한 번에 맞출 수 있는 상태로 만들어 주거나, 확실히 두 번으로 맞출 수 있는 상태로 바꾸고 나서 다시 계산하면 될 것이다.

당연히 “A, B, C 동작을 두 번 이용한 동작”으로 풀 수 있는 상태로 변경하여 그 동작으로 푸는 방법이 있다. 그리고 계산결과에 의하면, 코너조각 제자리회전 상태가 모두 맞춰지고 모서리조각 중 하나만 자기 자리에 위치하면 두 번의 동작으로 맞출 수 있다. 또, 코너조각 제자리회전 상태가 모두 맞춰지고 모서리조각 중 두 개만 노란색이 보이면 두 번의 동작으로 맞출 수 있다. 그리고 코너조각 제자리회전 상태가 “0102”이고 모서리조각이 모두 노란색이 보이면 모서리조각 위치 상태가 “2222”일 때만 세 번의 동작이 필요하고 나머지는 모두 두 번의 동작으로 맞출 수 있다. 그러므로 이 상태들로 한 번의 A, B, C 동작으로 변경 후에 두 번의 동작으로 맞출 수 있다. 이것을 정규표현식 비슷하게 표현하면 다음과 같다.

"0000 [^0]*0[^0]* .*"
"0000 .... (0011|0110|1100|1001|0101|1010)"
"0102 ^(2222) 0000"

두뇌를 쓰는 또다른 방법은 먼저 여덟 개의 코너조각의 위치를 모두 맞춘 다음에 모서리조각들을 맞추는 것이다. 이 때도 조각들을 하나씩 맞추는 것이 아니라, 두 개씩 맞춰서 동작 횟수를 줄이기 위해 노력하다보면, 큐브 전체에 퍼져 있는 조각들을 한 면에 가져와서 A, B, C 동작을 써야 하기 때문에 두뇌를 많이 쓰게 된다. B, C 동작 없이 A 동작만으로 풀려고 하다보면 머리가 터질 수 있다. 왜냐하면 면을 어떻게 돌렸는지 기억하고 그 역행으로 되돌려 놓아야 하기 때문이다. 잘못하다간 큐브가 엉망으로 꼬일 수 있다.

아래 두 가지 경우만 제외하면 두 조각의 위치를 맞추는 동시에 제자리회전까지 맞출 수 있다.

  1. 조각이 제자리에 있지만 색이 뒤집힌 경우
  2. 두 조각이 자리바꿈한 경우

첫번째 경우를 발견했다면 다른 부분을 맞추었을 때 색이 뒤집힌 조각이 하나 더 나오게 된다. 그때는 두 번의 동작으로 두 조각의 색을 뒤집을 수 있다. 그런데 다른 뒤집힌 조각이 나오기 전에 이 경우를 해제한다면 한 번의 동작을 줄일 수 있다. 이 경우를 해제하는 방법은 짝이 되는 뒤집힌 조각이 발생하는 동작에서 두 조각을 맞추는 대신에 한 조각만 맞추고 그 동작에 현재 뒤집혀 있는 조각을 포함시키는 것이다. 그러면 다음에 원래의 동작에서 맞추지 않은 두 조각과 원래 뒤집혀 있던 조각을 동시에 맞출 수 있다.

두번째 경우도 다른 부분을 맞추었을 때 자리바꿈한 다른 한 쌍이 발생한다. 이때도 두 번의 동작으로 네 조각을 맞출 수 있는데 네 조각을 두 번의 동작으로 맞추는 건 나쁜 게 아니다.

두 경우가 모두 나올 수 있다. 두 경우가 결합되지 않았다면 그대로 풀면 되지만 두 경우가 결합되었다면 두번째 경우를 해결하면 색이 뒤집힌 조각이 발생한다. 따라서 두번째 경우에서 네 조각 중 하나만 맞춘 후에 첫번째 경우를 해결할 때처럼 조각들을 맞춰야 한다.


  1. 큐브를 한 면을 90도 돌리면 네 코너조각들과 네 모서리 조각이 각각 순환한다. 그러면 코너조각들과 모서리조각들 각각 홀수 자리바꿈을 한다. 그런데 아랫줄 코너조각의 위치가 맞은 조건 하에서 큐브를 맞추고 있기 때문에 코너조각은 짝수 자리바꿈 상태이고 역시 모서리조각들도 짝수 자리바꿈 상태일 수밖에 없다.↩︎