이것은 일련의 아일랜드 골프 도전에서 두 번째입니다. 이전 도전
두 개의 은둔이 무인도에 도착했습니다. 그들은 고독을 찾아 왔기 때문에 가능한 한 멀리 떨어져 있기를 원합니다. 그들은 그들 사이의 도보 거리를 최대화하기 위해 오두막을 어디에 만들어야합니까?
입력
입력 내용은 토지와 물을 나타내는 두 문자로 구성된 직사각형 격자입니다. 아래 예에서 land is #
and water is .
이지만 원하는 두 개의 다른 문자를 대체 할 수 있습니다.
...........
...##......
..#####....
..#######..
.#########.
...#######.
...#####.#.
....####...
...........
항상 최소 2 개의 랜드 타일이 있습니다. 랜드 타일은 모두 연속적입니다 (즉, 하나의 섬만 있습니다). 물 타일도 연속적입니다 (예 : 호수가 없음). 격자의 외부 경계는 모두 물 타일입니다. 랜드 타일은 대각선으로 연결 되지 않습니다 . 예를 들어
....
.#..
..#.
....
산출
코드는 두 개의 오두막 위치가 표시된 동일한 그리드를 출력해야 합니다. 아래 예에서 오두막 위치는 X로 표시되어 있지만 토지 및 물 문자와 구별되는 한 문자를 대체 할 수 있습니다.
오두막 위치는 2 개의 랜드 타일이어야하며, 그 사이 의 도보 거리 를 최대화하기 위해 선택 됩니다. 우리는 보행 거리를 두 지점 사이의 가장 짧은 경로의 길이, 전체적으로 육지에서 정의합니다. 랜드 타일은 수평 또는 수직으로 인접하지만 대각선은 아닙니다 .
위의 섬에 가능한 해결책 :
...........
...X#......
..#####....
..#######..
.#########.
...#######.
...#####.X.
....####...
...........
이 두 지점 사이의 도보 거리는 11이며이 섬의 두 지점 사이의 최대 거리입니다. 다른 거리 11 솔루션이 있습니다.
...........
...##......
..X####....
..#######..
.#########.
...#######.
...#####.X.
....####...
...........
세부
귀하의 솔루션은 전체 프로그램 또는 기능 일 수 있습니다 . 임의의 기본 입출력 방법 으로 허용된다.
입력 및 출력은 여러 줄 문자열, 문자열 목록 또는 2D 배열 / 중첩 된 문자 / 단일 문자열 목록 일 수 있습니다. 출력에 선택적으로 단일 후행 줄 바꿈이있을 수 있습니다. 위에서 언급 한 바와 같이, 대신 3 개의 다른 문자를 사용할 수 있습니다 #.X
(제출시 사용중인 문자를 지정하십시오).
테스트 사례
A. 독특한 오두막 배치가있는 섬 :
....
.##.
....
....
.XX.
....
......
......
..##..
...#..
......
......
......
......
..X#..
...X..
......
......
........
.#####..
.##..##.
.#..###.
.##..##.
........
........
.#####..
.##..##.
.#..###.
.#X..#X.
........
.........
.#####.#.
.#...#.#.
.#.###.#.
.#.....#.
.#######.
.........
.........
.#####.X.
.#...#.#.
.#.X##.#.
.#.....#.
.#######.
.........
B. 가능한 여러 솔루션이있는 섬의 예 :
........
....##..
...####.
..###...
.#####..
.#####..
..##....
........
가능한 출력 :
........
....#X..
...####.
..###...
.#####..
.X####..
..##....
........
........
....#X..
...####.
..###...
.#####..
.#####..
..X#....
........
........
....##..
...###X.
..###...
.#####..
.X####..
..##....
........
........
....##..
...###X.
..###...
.#####..
.#####..
..X#....
........
이것은 코드 골프입니다 : 각 언어에서 가장 짧은 코드가 승리합니다.