ASCII 예술 "도로"를 입력하면 모든 막 다른 골목에 레이블이 붙은 도로가 출력됩니다.
이것은 길이다 :
########.....######..#..###
#......#######....#..#..#.#
#.##......#...#####..#..###
#..#####..#....#..#######.#
#......#...#####.....##...#
#..###.#...#...###...#..###
##########.#..#..##..#.##.#
..#......#.######.#..#.#.#.
..#......#.#..#.#.#..#.#.#.
..######.###..##..#########
이것은 글자로 표시된 막 다른 골목 이있는 도로입니다 X
.
########.....######..X..###
#......#######....#..X..#.#
#.XX......X...X####..X..###
#..XXXXX..X....#..#######.#
#......X...#####.....##...#
#..###.X...#...###...#..###
##########.#..X..##..#.##.X
..X......#.#XXXXX.#..#.#.X.
..X......#.#..X.X.#..#.#.X.
..XXXXXX.###..XX..######XXX
죽은 단부는 임의 도로 타일로서 정의되는 경계 N 적어도 다른 도로 타일, N-1 로 간주되는의 데드 끝 이 규칙 이미. "테두리"는 네 가지 기본 방향이므로 대각선으로 경계를 이루는 타일은 계산되지 않습니다.
새로 생성 된 막 다른 골목 자체가 더 많은 막 다른 골목을 만들 수 있으므로이 규칙은 반복적으로 적용 됩니다 . 또한 하나의 다른 도로 타일과 경계를 이루는 도로 타일은 규칙을 처음 적용 할 때 막 다른 골목 으로 간주 됩니다.
입력 및 출력은 단일 문자열 ( #
또는 아닌 문자로 구분 된 행 .
) 또는 배열 / 목록 / 등일 수 있습니다. 언어가 지원하는 경우 각 줄을 함수 인수로 입력 할 수도 있습니다.
입력에 대해 다음을 가정 할 수 있습니다.
항상 하나 이상의 "루프", 즉
#
무한대로 따라갈 수있는 문자 그룹 이 있습니다. 그렇지 않으면 모든 단일 타일이 막 다른 골목이 될 것입니다.이것은 가장 작은 루프가 다음과 같기 때문에 입력이 항상 2x2 이상임을 의미합니다.
## ##
(실수로 변경없이 출력해야합니다.)
모든
#
문자가 연결됩니다. 즉,에 대해 채우기를 수행하면#
모든 항목이 영향을받습니다.
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 승리합니다.
위의 예와 작은 2x2 격자를 테스트 사례로 사용할 수 있습니다 (이 과제에서 다루기에는 많은 경우가 없습니다).