네모로직(노노그램, nonogram)의 채워진 셀 사이의 셀을 비워둘 것인가 채울 것인가 판단하는 방법입니다.


채워진 셀 사이를 채웠을 때 너무 큰 블록이 만들어지면 빈칸으로 남겨둡니다(splitting).

만약 두 셀 사이를 비워두었을 때, 남은 셀들을 이용하여 힌트를 만족하는 블록을 못만들면 셀을 채웁니다(joining).


예시에서 가장 왼쪽 두 박스와 그 다음 두 박스 사이를 비워두면, 만들 수 있는 가장 왼쪽 박스는 4개 뿐입니다. 따라서 두 박스 사이를 채워서 힌트 5를 완성합니다.

오른쪽에 남은 각각 한개 짜리 박스 사이를 채우면 박스가 3개가 되므로 힌트 2 어느 것도 만족하지 않습니다. 따라서 두 박스 사이는 비워두고 2, 2 힌트를 만족합니다.

예시는 채울지 말 것인지 판단 후에 glue 테크닉으로 푸른 박스를 찾아서 퍼즐을 마무리한 모습입니다(2015/02/20 - [노트정리/알고리즘 놀이] - 네모로직 알고리즘 - 채워진 셀로 simple boxes를 구하는 방법, glue).


Paint by numbers - Solving - Example7.png

그림. 예시.


원문: http://en.wikipedia.org/wiki/Nonogram#Joining_and_splitting

Posted by 공돌이pooh

댓글을 달아 주세요