직소 조각 맞추기 게임

뒤섞인 조각 두 개를 순서대로 클릭해 자리를 바꾸면서 원래 그림을 완성해보세요.

이동 횟수: 0시간: 0초
완성 그림

이 퍼즐은 어떤 방식인가

이 게임은 한 장의 그림을 정사각형 격자로 자른 뒤 조각의 위치만 뒤섞어 두고, 두 조각을 차례로 눌러 자리를 맞바꾸며 원래 배열로 되돌리는 교환식 퍼즐입니다. 실제 직소 퍼즐처럼 조각 모양이 맞물리지도, 조각을 돌릴 일도 없습니다. 오직 "어느 조각이 어느 칸에 가야 하는가"만 묻기 때문에 그림을 읽는 눈과 순서를 짜는 계획이 승부를 가릅니다. 그림은 사진이 아니라 매번 코드가 새로 그리는 풍경입니다.

화면과 규칙, 코드에서 확인한 값

난이도별 경우의 수와 최소 이동 수

n개의 조각을 섞는 방법은 n!가지입니다. 그런데 교환만으로 정렬할 때 필요한 최소 횟수는 단순한 공식으로 정해집니다. 배열을 "A 칸에 있는 조각은 B 칸의 주인, B 칸의 조각은 C 칸의 주인…" 같은 고리(순환)로 나누면, 순환이 c개일 때 최소 교환 횟수는 n − c입니다. 무작위 배열에서 순환의 기대 개수는 1부터 n까지 역수의 합(조화수)이라서, 기대 최소 교환 수는 n에서 그 합을 뺀 값입니다. 표의 값은 이 공식으로 빌드할 때 계산한 것입니다.

난이도조각 수조각 크기(px)배열 경우의 수최악 최소 이동평균 최소 이동
3x39120362,8808회6.2회
4x416902.09 × 10^1315회12.6회
5x525721.55 × 10^2524회21.2회

최악의 경우는 모든 조각이 하나의 큰 고리로 엮인 배열이고, 이때도 n − 1회면 끝납니다. 즉 5x5도 24번 안에는 반드시 풀 수 있습니다. 완성 메시지에 표시되는 "이론상 최소 이동"은 처음 섞인 배열에서 같은 방식으로 계산한 값이므로, 내 이동 횟수가 이 값에 가까울수록 낭비 없이 푼 것입니다.

검산한 예시 세 가지

  1. 세 조각이 돌아가며 어긋난 경우. 1번 칸에 2번 조각, 2번 칸에 3번 조각, 3번 칸에 1번 조각이 있다면 고리가 하나(길이 3)이므로 최소 3 − 1 = 2회입니다. 1번 칸과 3번 칸을 바꾸면 1번 조각이 제자리를 찾고, 이어 2번 칸과 3번 칸을 바꾸면 끝납니다.
  2. 두 조각만 서로 바뀐 경우. 길이 2의 고리 하나와 나머지 제자리 조각이 있으면 1회로 끝납니다. 이동 횟수가 2회 이상이라면 어딘가에서 돌아간 것입니다.
  3. 4x4에서 제자리 조각이 4개 있는 경우. 나머지 12개가 3개짜리 고리 4개로 나뉘면 순환은 모두 8개(제자리 4개 포함)이고 최소는 16 − 8 = 8회입니다. 반대로 12개가 하나의 큰 고리라면 순환은 5개이고 최소는 11회입니다. 제자리 조각 수만으로 남은 이동 수를 단정할 수 없는 이유입니다.

처음 섞인 배열은 얼마나 어려운가: 최소 이동 수의 분포

섞기가 모든 배열을 같은 확률로 고르므로, 처음 배열의 최소 이동 수가 몇 회일지도 정확히 계산할 수 있습니다. 순환이 c개인 배열의 수는 제1종 스털링 수라는 값으로 알려져 있고, 이를 n!로 나누면 확률이 됩니다. 아래 표는 3x3의 모든 경우를 이 방식으로 빌드 시 계산한 것입니다. 이미 완성된 배열(0회)은 게임이 다시 섞으므로 실제로는 나오지 않습니다.

처음 최소 이동 수0회1회2회3회4회5회6회7회8회
확률(%)0.000.010.151.256.1918.5432.5530.2011.11

3x3은 최소 6회가 가장 흔하고(약 32.6%), 중앙값도 6회입니다. 같은 방식으로 계산하면 4x4는 13회가 가장 흔하고 (약 29.5%), 5x5는 21회가 가장 흔합니다(약 25.4%). 5x5에서 처음부터 10회 이하로 끝나는 판은 사실상 나오지 않으므로, 완성 메시지의 "이론상 최소"가 20회 안팎이라면 평범한 판이고 15회 이하라면 드물게 운이 좋은 판입니다. 반대로 3x3에서 최소가 2~3회인 판은 합쳐서 1.4% 안팎에 불과합니다.

또 하나 알아 둘 사실은 제자리 조각의 기대 개수입니다. 무작위 배열에서 어떤 한 조각이 제자리에 있을 확률이 1/n이고 조각이 n개이므로, 제자리 조각의 기대 개수는 난이도와 상관없이 1개입니다. 초록 표시를 켜 보면 처음에 0~2개가 켜지는 경우가 대부분이며, 3x3이든 5x5든 시작 때 맞는 조각이 한두 개뿐이라는 점이 이 퍼즐의 출발선입니다.

실전 공략: 한 번에 한 칸씩 확정하기

가장 안정적인 방법은 위쪽 줄 왼쪽 칸부터 순서대로 "이 칸에 와야 할 조각"을 찾아 그 칸과 맞바꾸는 것입니다. 이렇게 하면 교환마다 적어도 한 조각이 영구히 제자리를 잡으므로 n − 1회를 넘지 않습니다. 맞는 조각을 찾기 어렵다면 완성 그림 미리보기에서 해당 칸이 어떤 요소(태양, 산 능선, 땅 경계)를 포함하는지 먼저 확인하세요. 산 능선의 꼭짓점과 땅의 가로줄은 이웃 조각과 이어지는 선이어서 가장 믿을 만한 단서입니다.

비슷해 보이는 조각 구분하기

난이도를 고르는 기준

표의 평균 최소 이동 수로 보면 쉬움(3x3)은 약 6.2회, 보통(4x4)은 약 12.6회, 어려움(5x5)은 약 21.2회의 교환이 필요합니다. 조각이 9개에서 25개로 2.8배 늘 때 필요한 교환은 약 3.4배 늘어, 난이도가 조각 수보다 가파르게 오릅니다. 게다가 5x5에서는 한 조각이 72px밖에 되지 않아 비슷한 하늘 조각을 구별하는 눈의 피로가 더 큰 장애물이 됩니다. 처음이라면 3x3으로 그림 구성을 익히고, 4x4에서 초록 표시 없이 풀어 보는 순서를 권합니다.

한 판의 흐름은 대개 세 단계입니다. 먼저 가장 구별하기 쉬운 산 능선과 땅 띠 조각으로 아랫부분을 확정하고, 다음으로 태양이 있는 칸을 찾아 위치를 잡고, 마지막에 구름과 별 무늬만 다른 하늘 조각을 짝지어 나머지를 채웁니다. 마지막 몇 칸은 남은 조각이 한두 개로 좁혀져 있으므로 이동 횟수를 아끼려면 맞바꾸기 전에 두 조각이 정말 서로의 자리인지 한 번 더 확인하세요.

화면 폭에 따른 조각 크기

스크립트는 보드가 들어가는 영역의 폭에서 여백 24px와 조각 사이 틈(2px × (줄 수 − 1))을 뺀 값과 360px 중 작은 쪽을 쓰고, 이를 줄 수로 나눠 내림해 조각 한 변을 정하며 최소값은 36px입니다. 영역 폭을 가정해 같은 식으로 계산한 표입니다. 실제 영역 폭은 기기와 레이아웃에 따라 다르므로 참고용입니다.

보드 영역 폭(px)3x3 조각4x4 조각5x5 조각
28084px62px49px
32097px72px57px
400120px90px72px
600120px90px72px

폭이 280px 정도로 좁으면 5x5의 조각은 한 변이 약 49px까지 줄어 손가락 끝으로 정확히 누르기 어렵고, 400px 이상이면 세 난이도 모두 최대 크기에 가까워집니다. 난이도나 화면 크기를 바꾼 뒤에는 조각 크기가 새로 계산되도록 난이도 선택 후 새 그림이 시작됩니다. 창 크기를 바꿔도 진행 중인 판의 조각 크기는 그대로입니다.

조작과 진행에 관한 세부 동작

흔한 실수와 한계

자주 묻는 질문

같은 그림이 계속 나오나요?

새 그림 버튼이나 난이도 변경을 누를 때마다 색상 기준값, 태양 위치, 구름과 별의 배치가 새로 정해져 매번 다른 그림이 나옵니다. 같은 색 계열이 우연히 겹칠 수는 있습니다.

실수로 조각을 잘못 옮기면 어떻게 되나요?

같은 두 조각을 다시 눌러 되돌릴 수 있습니다. 이동 횟수는 되돌린 것까지 누적되지만 시간 제한이 없으니 천천히 풀어도 됩니다.

이동 횟수가 최소 이동 수와 같으면 완벽한 건가요?

네, 처음 배열을 가장 적은 교환으로 푼 것입니다. 다만 배열에 따라 최소 이동 수 자체가 3회일 수도 20회일 수도 있어서 서로 다른 판의 이동 횟수를 직접 비교하는 것은 공정하지 않습니다.

휴대폰에서도 할 수 있나요?

조각을 탭하는 방식이라 터치 화면에서 문제없이 동작합니다. 좁은 화면에서는 조각이 작아지므로 5x5는 큰 화면이 더 편합니다.

섞인 배열 중 풀 수 없는 것도 있나요?

없습니다. 이 게임은 슬라이딩 퍼즐과 달리 어느 두 조각이든 자유롭게 맞바꿀 수 있어서, 어떤 배열이든 n − 순환 수 번의 교환으로 반드시 원래대로 돌아옵니다. 풀 수 없는 배열은 존재하지 않습니다.

처음에 이미 제자리에 있는 조각은 건드리지 않는 게 좋은가요?

대체로 그렇습니다. 제자리 조각은 그 자체로 길이 1의 순환이라 더 옮길 필요가 없고, 제자리 조각을 다른 조각과 바꾸면 그 조각이 다른 순환에 합쳐져 남은 최소 이동 수가 1 늘어납니다. 다만 위쪽 줄부터 확정해 나가는 방식에서는 다른 조각을 그 칸에 가져오려 할 때만 예외적으로 건드리게 됩니다.

시간과 이동 횟수 중 무엇을 줄이는 것이 중요한가요?

게임이 정해 둔 점수는 없습니다. 이동 횟수는 계획의 효율을, 시간은 조각을 알아보는 속도를 보여 주므로 두 값 모두 개인 목표로 정하면 됩니다. 서로 다른 판은 최소 이동 수가 달라 직접 비교가 불공정하다는 점만 기억하세요.

기록이 저장되나요?

저장하지 않습니다. 이동 횟수와 시간은 화면에만 표시되고 페이지를 닫거나 새로고침하면 사라지며, 지울 데이터도 없습니다.

비슷한 퍼즐 더 해보기

한 칸의 빈자리를 이용해 숫자를 정렬하는 슬라이딩 퍼즐, 타일을 돌려 길을 잇는타일 회전 퍼즐, 같은 그림 쌍을 찾는 카드 짝 맞추기, 번호 순서대로 점을 이어 그림을 만드는 점 잇기 퍼즐도 있습니다.