마천루 퍼즐은 어떤 퍼즐인가요?
마천루 퍼즐은 N×N 격자의 칸마다 높이 1부터 N까지 건물을 세우되, 한 줄과 한 열에 같은 높이가 두 번 나오지 않게 하고, 가장자리에 적힌 숫자만큼 그 방향에서 건물이 보이게 하는 퍼즐입니다. 영어권에서는 스카이스크래퍼(Skyscrapers), 타워 퍼즐이라고 부르고, 빌딩 퍼즐이나 건물 높이 퍼즐이라고도 합니다.
핵심은 "높은 건물이 뒤의 낮은 건물을 가린다"는 한 가지 사실입니다. 가장자리에 선 사람이 자기 줄을 바라볼 때, 앞 건물보다 높은 건물이 나올 때마다 하나씩 더 보입니다. 높이 2, 4, 1, 3 순서라면 2와 4만 보이고 1과 3은 4에 가려지므로 그 사람이 보는 건물은 둘입니다. 이 게임에서는 숫자를 넣으면 그 택지에 건물이 솟아오르기 때문에, 어느 건물이 어느 건물을 가리는지 눈으로 바로 확인할 수 있습니다.
규칙은 정확히 무엇인가요?
규칙은 셋입니다. 한 줄에 같은 높이 금지, 한 열에 같은 높이 금지, 가장자리 숫자와 그 방향에서 보이는 건물 수 일치. 셋을 모두 만족하는 배치는 판마다 하나뿐입니다.
| 규칙 | 뜻 |
|---|---|
| 줄 | 가로 한 줄에 높이 1부터 N까지 한 번씩. 5×5 면 1·2·3·4·5 층 건물이 한 채씩 |
| 열 | 세로 한 열에도 1부터 N까지 한 번씩 |
| 단서 | 가장자리 사람 옆 숫자는 그 사람이 자기 줄이나 열을 볼 때 보이는 건물 수. 앞 건물보다 높아야 보입니다 |
| 초기 건물 | 회색 건물은 처음부터 서 있는 것으로 철거할 수 없습니다. 큰 판에서만 몇 채 나옵니다 |
| 완성 | 모든 택지에 건물이 서고 어긋난 줄·단서가 없으면 완공. 해가 지며 창문에 불이 켜집니다 |
단서 숫자는 어떻게 읽나요?
가장 쓸모 있는 단서는 1과 N입니다. 1이 적혀 있으면 바로 앞 칸이 가장 높은 N 이고, N 이 적혀 있으면 그 줄은 앞에서부터 1, 2, 3, ... N 순서로 커집니다. 나머지 숫자도 첫 칸에 올 수 있는 높이를 크게 줄여 줍니다.
| 단서 | 알 수 있는 것(N = 5 기준) |
|---|---|
| 1 | 바로 앞 칸이 5. 뒤는 전부 가려지니 아무 순서나 가능 |
| 5 (= N) | 앞에서부터 1, 2, 3, 4, 5 로 확정 |
| 2 | 첫 칸은 5가 아니고, 첫 칸이 4면 5는 아무 데나. 첫 칸이 3이면 4가 5보다 앞에 올 수 없습니다 |
| k | 첫 칸의 높이는 N - k + 1 이하. 5는 앞에서 k번째 칸이나 그 뒤에 섭니다 |
| 양 끝 합이 N + 1 | 왼쪽 a, 오른쪽 b 가 a + b = 6 이면 5는 왼쪽에서 a번째 칸으로 확정. 예를 들어 2와 4면 둘째 칸이 5 |
| 양 끝 합이 N + 1 보다 큼 | 있을 수 없는 조합이니 판에는 나오지 않습니다 |
풀이 요령은 무엇인가요?
- 1과 N 단서부터 처리하세요. 1 앞에는 N, N 앞에는 1부터 차례로. 한 번에 여러 칸이 확정됩니다.
- N 층 건물의 자리를 먼저 잡으세요. 가장 높은 건물은 어느 쪽에서 봐도 보이고 뒤를 전부 가립니다. 단서 k 가 있으면 N 은 그쪽에서 k번째 칸 이후에만 설 수 있으니, 줄마다 N 이 들어갈 수 있는 칸을 메모로 표시해 두면 빨리 풀립니다.
- 양 끝 단서를 더해 보세요. 합이 N + 1 이면 N 의 위치가 바로 정해집니다.
- 첫 칸의 상한을 적으세요. 단서 k 쪽의 첫 칸은 N - k + 1 을 넘을 수 없습니다. 단서 3 쪽 첫 칸은 5×5 에서 3 이하입니다.
- 줄·열에서 빠진 높이를 세세요. 네 채가 섰으면 남은 택지는 빠진 높이 하나로 확정됩니다. 어떤 높이가 들어갈 수 있는 칸이 그 줄에 하나뿐이면 다른 후보가 있어도 그 칸입니다.
- 막히면 확인 단추. 어긋난 줄이 빨갛게 칠해지고 그 단서도 빨갛게 바뀝니다. 힌트는 지금 상태에서 확정되는 건물 한 채를 대신 세워 줍니다.
크기별 난이도는 어떻게 다른가요?
4×4 는 단서 읽는 법을 익히는 연습판, 5×5 가 가장 흔한 표준 크기, 6×6·7×7 은 메모 없이는 풀기 어려운 고수용입니다. 큰 판에서는 추리만으로 풀리도록 처음부터 서 있는 건물이 몇 채 주어집니다.
| 크기 | 단서 | 초기 건물 | 목표 시간 |
|---|---|---|---|
| 쉬움 4×4 | 16개 중 8개 안팎 | 0~2채 | 1분 안팎 |
| 보통 5×5 | 20개 중 9개 안팎 | 0~2채 | 3분 안팎 |
| 어려움 6×6 | 24개 중 11개 안팎 | 3~6채 | 6분 안팎 |
| 고수 7×7 | 28개 중 13개 안팎 | 4~8채 | 10분 이상 |
모든 판은 추리만으로 끝까지 풀리도록 만들었습니다. 찍어 넣고 맞기를 바라야 하는 판은 없습니다. 결과 화면의 등급은 걸린 시간으로 매기고, 힌트 횟수는 따로 적힙니다.
판은 어떻게 만들어지나요?
먼저 1부터 N까지가 줄·열마다 한 번씩 들어간 라틴방진을 무작위로 섞어 만들고, 네 방향에서 보이는 건물 수를 세어 단서 4N개를 적은 뒤 단서를 하나씩 빼 봅니다. 전파 풀이기(줄 단위로 가능한 배치를 모두 훑어 후보를 좁히는 방식)만으로 여전히 풀리면 뺀 채로 두고, 안 풀리면 되돌립니다. 큰 판에서는 풀이기가 막히지 않도록 건물 몇 채를 먼저 세워 두고, 같은 방법으로 그것도 빼 봅니다. 마지막에 되추적 풀이기로 답이 하나뿐인지 확인합니다.
그래서 같은 크기라도 판마다 단서 수와 초기 건물 수가 조금씩 다릅니다. 결과 자랑하기로 만든 주소를 열면 같은 번호의 판이 그대로 나오니 친구와 시간을 겨룰 수 있습니다.
오늘의 판은 무엇인가요?
오늘의 판은 날마다 바뀌는 5×5 판으로, 같은 날에는 누구나 같은 판을 받습니다. 한국 시각 자정에 바뀌고, 완공하면 출석 기록에 남습니다.
기록은 크기별 최고 시간이 따로 저장됩니다. 짓다가 나가도 이어 하기 단추로 그 자리에서 다시 시작할 수 있습니다.
조작법
- 휴대폰·마우스: 택지나 건물을 누르면 주황 테두리로 골라지고, 아래(가로 화면에서는 오른쪽) 높이 단추를 누르면 건물이 솟아오릅니다. 같은 높이를 다시 누르면 철거됩니다. 메모를 켜면 숫자가 택지에 후보로 작게 적힙니다.
- 키보드: 숫자 1~N 세우기, Backspace·Delete·0 철거, 방향키로 택지 이동, N 메모 켜고 끄기, H 힌트, Z 무르기, C 확인.
- 단추: 무르기는 마지막 입력부터 차례로 되돌립니다. 힌트는 사용 횟수가 결과에 함께 적힙니다.
기록과 짓다 만 판은 지금 쓰는 브라우저에만 저장되고 서버로 보내지 않습니다. 브라우저 자료를 지우면 기록도 사라집니다.