네모로직 규칙과 푸는 법

줄 옆에 적힌 숫자만 보고 어느 칸을 칠할지 알아내는 퍼즐입니다. 규칙은 두 줄이면 끝나지만 첫 칸을 어디서 여는지는 따로 배우는 편이 훨씬 빠릅니다. 처음 푸는 사람이 읽을 부분부터 숙련자가 볼 기법까지 순서대로 실었습니다.

네모로직은 어떤 퍼즐인가

네모로직은 격자의 각 행과 각 열에 붙은 숫자만 가지고 어느 칸을 칠해야 하는지 알아내는 논리 퍼즐입니다. 숫자가 잔뜩 붙어 있지만 계산은 한 번도 하지 않고, 하는 일은 어느 칸이 반드시 칠해지고 어느 칸이 절대 칠해질 수 없는지를 하나씩 확정하는 것뿐입니다. 다 채우면 칠한 칸들이 하나의 그림처럼 남기 때문에 그림 논리 퍼즐이라고도 부릅니다.

지금 형태는 1980년대 후반 일본에서 거의 같은 시기에 두 사람이 각각 고안한 것으로 알려져 있고, 곧 일본 퍼즐 잡지에 연재되며 자리를 잡았습니다. 1990년 무렵 영국 신문에 실리면서 노노그램이라는 영어 이름을 얻었고, 이후 신문과 잡지, 게임기, 웹으로 넓게 퍼졌습니다. 매체마다 부르는 이름이 다른데 우리는 한국에서 오래 쓰인 네모로직이라는 이름을 씁니다.

기본 규칙

숫자를 읽는 법

행 왼쪽과 열 위쪽에 붙은 숫자는 그 줄에서 연속으로 칠해진 칸 묶음의 길이를 순서대로 알려 줍니다. 어떤 행에 3 1이라고 적혀 있으면 그 행에는 세 칸짜리 묶음이 먼저 오고 그 뒤에 한 칸짜리 묶음이 온다는 뜻입니다. 순서는 왼쪽에서 오른쪽, 위에서 아래로 고정이라 한 칸짜리가 앞에 오는 일은 없습니다.

묶음 사이에는 빈칸이 있습니다

숫자가 둘 이상이면 묶음과 묶음 사이에는 반드시 빈칸이 하나 이상 들어갑니다. 이 조건이 없다면 3 1과 4를 구별할 수 없을 테니, 사실상 이것이 숫자를 세는 규칙 자체입니다. 거꾸로 말하면 숫자들의 합에 묶음 사이 빈칸 개수를 더한 값이 그 줄에 필요한 최소 길이라서, 그 값이 줄 길이와 같아지면 그 줄은 그 자리에서 전부 정해집니다.

0과 완성 조건

숫자가 0 하나뿐인 줄은 칠할 칸이 전혀 없다는 뜻이라 줄 전체를 비워 두면 됩니다. 모든 행과 모든 열이 자기 숫자와 어긋나지 않게 채워지면 그 판은 끝난 것입니다. 시간 제한도 순서 제한도 없고, 어느 줄부터 손대든 결과는 같습니다.

이 앱의 세부 규칙

여기부터는 이 앱이 실제로 하는 일입니다. 같은 퍼즐이라도 앱마다 다른 부분이라 한 번 읽어 두면 헷갈릴 일이 줄어듭니다.

다섯 칸씩 다섯 줄, 하루에 한 판

판은 가로 다섯 세로 다섯으로 스물다섯 칸입니다. 그날 날짜에서 뽑은 값으로 만들기 때문에 같은 날 들어온 사람은 누구나 같은 판을 받고, 날이 바뀌면 새 판이 열립니다. 판을 만드는 일도 푸는 일도 전부 브라우저 안에서 일어나서 서버로 오가는 기록이 없으며 계정도 필요하지 않습니다.

답이 하나뿐인 판만 냅니다

만드는 순서가 조금 특이합니다. 먼저 그날 값으로 그림 하나를 통째로 뽑고, 그 그림에서 행과 열의 숫자를 뽑아냅니다. 그다음이 중요한데, 그 숫자들만 가지고 나올 수 있는 그림이 몇 개인지를 직접 세어 봅니다. 정확히 하나면 그 판을 그대로 내보내고, 둘 이상이면 그 그림을 버리고 값을 바꿔 처음부터 다시 뽑습니다. 칸을 하나씩 지워 가며 난이도를 맞추는 방식이 아니라, 통째로 다시 뽑아 걸러 내는 방식입니다.

세는 방법은 이렇습니다. 다섯 칸짜리 줄에 들어갈 수 있는 배치는 서른두 가지뿐이라 행마다 숫자에 맞는 배치를 전부 나열해 두고, 위에서부터 한 행씩 얹으면서 그때까지 만들어진 열이 열 숫자와 어긋나면 그 가지를 바로 접습니다. 두 개째 답이 나오는 순간 세기를 멈추므로 답이 여럿이라는 사실만 확인하고 넘어갑니다. 그래서 화면에 나오는 판은 언제나 답이 하나뿐이고, 두 갈래를 만나 찍어야 하는 자리가 원리상 생기지 않습니다.

그림은 칸마다 절반보다 조금 높은 확률로 칠해지도록 뽑기 때문에 대체로 빈칸보다 칠한 칸이 많습니다. 전부 빈 그림은 아예 걸러 냅니다. 다만 뽑는 값이 무작위라서 완성해도 무엇을 그린 것인지는 알 수 없습니다. 모양을 짐작해서 칸을 메우는 방식은 이 앱에서 통하지 않고, 숫자만 보고 따지는 편이 언제나 빠릅니다.

칠하기와 X, 두 가지 모드

화면 오른쪽 위 단추로 칠하기 모드와 X 표시 모드를 오갑니다. 칠하기 모드에서 빈칸을 누르면 칠해지고 한 번 더 누르면 다시 비워집니다. X 표시 모드에서는 같은 방식으로 X가 찍히고 다시 누르면 지워집니다. 컴퓨터에서는 모드를 바꾸지 않고 오른쪽 단추로 눌러도 X가 찍힙니다. 두 표시는 서로를 덮어써서, 칠한 칸을 오른쪽 단추로 누르면 그대로 X로 바뀝니다.

X는 여기가 빈칸이라고 스스로 적어 두는 메모일 뿐이라 완성 판정에는 쓰이지 않습니다. 칠한 칸만 정답과 대조하기 때문에 X를 하나도 찍지 않아도 되고, 반대로 정답이 빈칸인 자리에 X를 안 찍었다고 해서 미완성으로 남지도 않습니다.

틀려도 알려 주지 않습니다

이 부분은 꼭 알아 두셔야 합니다. 잘못 칠한 칸을 빨갛게 바꾸거나 경고를 띄우는 기능이 없습니다. 앱이 정답을 보는 것은 스물다섯 칸이 전부 정답과 같아지는지 확인할 때 한 번뿐이라서, 그전까지는 무엇을 칠하든 화면이 똑같이 반응합니다. 다 칠한 것 같은데 완성 문구가 안 뜬다면 어딘가에 조용히 틀린 칸이 있다는 뜻입니다.

없는 기능도 분명히 적어 둡니다. 답을 열어 주는 힌트 단추가 없고, 되돌리기가 없으며, 시간이나 실수 횟수를 세지 않습니다. 다 채운 줄의 숫자를 흐리게 바꿔 주지도 않고 확정된 빈칸에 X를 대신 찍어 주지도 않습니다. 판단은 전부 사람이 합니다. 대신 칠하고 지우는 일에 횟수 제한이 없어서 실수 한 번이 판을 망치지는 않습니다.

진행 저장과 완성

칠한 칸과 찍은 X는 이 브라우저 안에 저장되어서 새로고침하거나 창을 닫았다 열어도 그대로 남습니다. 아직 한 칸도 손대지 않은 상태는 저장하지 않고, 날짜가 바뀌면 어제 저장분은 버리고 새 판을 엽니다. 저장된 내용이 칸 수와 맞지 않거나 형태가 깨져 있어도 읽지 않고 빈 판으로 시작합니다.

칠한 칸이 정답과 완전히 같아지는 순간 완성 문구가 뜨고 판이 잠깁니다. 이때 공유 단추가 나오는데, 완성했을 때만 공유 문구에 그림이 실립니다. 아직 푸는 중에 눌렀다면 날짜와 진행 중이라는 사실만 담기므로 다른 사람에게 보내도 답이 새지 않습니다.

기본 요령

아래는 사람이 눈과 머리로 하는 일입니다. 앱이 대신 찾아 주지 않으니 직접 훑어야 하는데, 대신 한 번 익히면 크기가 다른 어떤 판에서도 그대로 쓰입니다.

줄이 통째로 정해지는 자리부터

숫자들의 합에 묶음 사이 빈칸 수를 더한 값이 줄 길이와 같으면 그 줄은 배치가 하나뿐입니다. 다섯 칸 줄에서 5는 물론이고 2 2와 1 3, 1 1 1도 여기에 해당합니다. 2 2라면 두 칸을 칠하고 한 칸 비우고 다시 두 칸이라 다른 방법이 없습니다. 판을 열자마자 이런 줄을 먼저 찾아 채우면 그 줄이 지나는 다섯 개의 다른 줄이 한꺼번에 단서를 얻습니다.

겹치는 부분은 무조건 칠합니다

줄이 통째로 정해지지 않아도 확정 칸은 나옵니다. 묶음을 줄 맨 앞에 붙였을 때와 맨 뒤에 붙였을 때를 겹쳐 보고, 두 경우 모두 칠해지는 칸이 있으면 그 칸은 어떤 배치에서도 칠해집니다. 다섯 칸 줄에 4가 있으면 가운데 세 칸이, 3이 있으면 가운데 한 칸이 그렇게 확정됩니다. 큰 숫자일수록 겹치는 부분이 넓으니 판 전체에서 가장 큰 숫자가 붙은 줄부터 보세요.

한 줄을 끝냈으면 나머지를 지웁니다

어떤 줄에 필요한 칸을 다 칠했다면 그 줄의 남은 칸은 전부 빈칸입니다. 3 1인 줄에서 세 칸 묶음과 한 칸 묶음을 다 찾았다면 나머지 한 칸은 볼 것도 없이 X입니다. 앱이 자동으로 찍어 주지 않으니 직접 찍어 두세요. 이 X들이 다른 줄에서 묶음이 들어갈 자리를 좁혀 주기 때문에, 지우는 일이 칠하는 일만큼 중요합니다.

고급 요령

위 세 가지로 더 안 나가는 구간이 옵니다. 그때부터는 한 줄만 보지 않고 줄과 줄 사이를 오가야 하는데, 여기서도 앱은 아무것도 대신 해 주지 않습니다.

가장자리에 붙여 봅니다

줄 맨 끝 칸이 칠해진 것이 확실해지면 첫 묶음은 그 자리에서 시작할 수밖에 없습니다. 숫자가 3이라면 끝에서 세 칸이 그대로 칠해지고 그다음 칸은 X가 됩니다. 반대로 맨 끝 칸에 X가 찍혀 있으면 그 줄의 사용 가능 길이가 한 칸 줄어드는 셈이라, 아까는 안 나오던 겹침이 바로 나올 때가 많습니다. 확정 칸을 하나 얻을 때마다 그 줄의 양 끝을 다시 보는 습관을 들이면 좋습니다.

칠한 칸이 지나는 줄로 건너갑니다

이 퍼즐의 핵심은 한 칸이 행과 열 두 줄에 동시에 속한다는 점입니다. 어떤 행에서 한 칸을 확정했다면 그 칸이 지나는 열은 방금 새 정보를 얻은 것이라 다시 볼 가치가 생깁니다. 한 줄에서 더 못 나갈 때 같은 줄을 오래 노려보는 것은 대개 소용이 없고, 방금 손댄 칸이 지나는 반대 방향 줄로 옮기는 편이 훨씬 잘 풀립니다.

칠한 칸 개수로 검산합니다

다섯 행의 숫자를 전부 더한 값과 다섯 열의 숫자를 전부 더한 값은 같아야 합니다. 둘 다 그 판에서 칠해질 칸의 총 개수를 말하기 때문입니다. 어느 정도 진행한 뒤에 지금 칠한 칸을 세어 이 값과 비교하면 얼마나 남았는지가 나옵니다. 이미 그 값을 넘겼다면 어딘가에 잘못 칠한 칸이 있다는 뜻이라, 완성 문구를 기다리기 전에 스스로 잡아낼 수 있습니다.

가정을 세울 때는 짧게

답이 하나뿐인 판이라 원칙적으로는 가정 없이 풀립니다. 그래도 손이 막히면 어느 칸을 칠했다고 잠시 가정하고 그 줄과 지나는 줄을 따라가 보는 방법이 있습니다. 모순이 나오면 그 칸은 빈칸으로 확정입니다. 다만 되돌리기가 없으니 가정은 두세 수 안에서 끝내고, 지운 자리를 스스로 기억할 수 있는 범위에서만 쓰세요.

자주 막히는 부분

다 칠했는데 완성이 안 뜰 때

앞에서 적었듯 이 앱은 틀린 칸을 표시해 주지 않습니다. 빈자리가 없어 보이는데 완성 문구가 안 나온다면 칠해야 할 칸을 안 칠했거나 칠하지 말아야 할 칸을 칠한 것입니다. 다섯 행의 숫자 합과 지금 칠한 칸 수를 먼저 비교해 보세요. 수가 맞는데도 안 뜬다면 자리만 어긋난 것이니, 행을 한 줄씩 짚으며 숫자와 실제 묶음이 같은지 대조하는 편이 빠릅니다.

숫자가 하나뿐인 줄만 보고 있을 때

숫자가 하나면 쉬워 보이지만 1이나 2처럼 작은 수는 갈 자리가 넓어서 확정이 잘 안 나옵니다. 오히려 4나 2 2처럼 줄을 꽉 채우는 숫자가 확정을 많이 냅니다. 쉬워 보이는 줄이 아니라 여유 공간이 적은 줄부터 보는 것이 순서입니다.

X를 안 찍고 버틸 때

칠하는 것만 하고 X를 생략하면 머릿속에서 줄 상태를 계속 다시 계산하게 됩니다. 다섯 칸짜리 판이라 어떻게든 되긴 하지만, 확정된 빈칸을 X로 남겨 두면 다음에 그 줄을 볼 때 남은 자리가 한눈에 들어옵니다. X는 판정에 쓰이지 않으니 마음 편히 찍었다 지웠다 하셔도 됩니다.

찍고 싶어질 때

이 판은 답이 하나뿐이라 찍어야만 넘어가는 자리가 없습니다. 막혔다면 아직 못 본 논리가 남아 있다는 뜻이지 판이 운에 맡길 만큼 어려워진 것은 아닙니다. 게다가 틀려도 알려 주지 않고 되돌리기도 없어서 한 번 찍으면 어디서부터 어긋났는지 되짚기가 어려워집니다. 확신이 서는 칸만 남겨 두고 잠시 쉬었다 오는 쪽을 권합니다.