네모로직(노노그램, nonogram)의 채워진 셀 사이의 셀을 비워둘 것인가 채울 것인가 판단하는 방법입니다.
채워진 셀 사이를 채웠을 때 너무 큰 블록이 만들어지면 빈칸으로 남겨둡니다(splitting).
만약 두 셀 사이를 비워두었을 때, 남은 셀들을 이용하여 힌트를 만족하는 블록을 못만들면 셀을 채웁니다(joining).
예시에서 가장 왼쪽 두 박스와 그 다음 두 박스 사이를 비워두면, 만들 수 있는 가장 왼쪽 박스는 4개 뿐입니다. 따라서 두 박스 사이를 채워서 힌트 5를 완성합니다.
오른쪽에 남은 각각 한개 짜리 박스 사이를 채우면 박스가 3개가 되므로 힌트 2 어느 것도 만족하지 않습니다. 따라서 두 박스 사이는 비워두고 2, 2 힌트를 만족합니다.
예시는 채울지 말 것인지 판단 후에 glue 테크닉으로 푸른 박스를 찾아서 퍼즐을 마무리한 모습입니다(2015/02/20 - [노트정리/알고리즘 놀이] - 네모로직 알고리즘 - 채워진 셀로 simple boxes를 구하는 방법, glue).
그림. 예시.
원문: http://en.wikipedia.org/wiki/Nonogram#Joining_and_splitting
'노트정리 > 알고리즘 놀이' 카테고리의 다른 글
네모로직 알고리즘 - contradiction 풀이에 관해, deeper recursion, multiple rows. (0) | 2015.03.03 |
---|---|
네모로직 알고리즘 - 박스로 채우거나 빈 셀로 가정하고 모순을 찾아서 푸는 테크닉, contradiction. (0) | 2015.03.03 |
네모로직 알고리즘 - 뭉친 박스에서 비워야할 빈 칸을 찾는 테크닉, mercury. (0) | 2015.03.01 |
네모로직 알고리즘 - 중단점으로 박스 구분하기, punctuating (0) | 2015.02.26 |
네모로직 알고리즘 - 채워진 셀로 simple boxes를 구하는 방법, glue. (0) | 2015.02.20 |
네모로직 알고리즘 - simple spaces를 찾은 이후에 simple boxes하는 방법, forcing (0) | 2015.02.20 |
네모로직 알고리즘 - 마땅히 비워야할 셀 구하는 방법, simple spaces (2) | 2015.02.18 |
엘리베이터 시뮬레이터 만드는 방법 (0) | 2014.06.25 |