입력:
두 개의 고유 한 (선택적) 값을 포함하는 2D 배열입니다. 규칙을 설명 할 때 0 과 1을 사용하겠습니다 . 입력 형식은 물론 유연합니다.
도전:
0은 물이고 1은 섬입니다. 외로움을 보장하기 위해 작업은 0의 행과 열을 삽입하여 모든 섬을 물로 둘러싸는 것입니다. 물을 낭비하고 싶지 않으므로 추가되는 물의 양을 최소화해야합니다. 같은 양의 물을 추가해야하는 용액이 두 개 이상인 경우 행이 아닌 물을 추가해야합니다. 테스트 사례에서 이것을 보여 드리겠습니다.
산출:
새롭게 수정 된 2D 어레이. 출력 형식은 물론 유연합니다.
테스트 사례 :
입력과 출력은 대시로 구분됩니다. 추가 된 0은 굵은 글꼴로 표시됩니다. 테스트 사례를보다 편리한 형식으로 변환하려면 여기 에있는 답변 중 하나를 사용하십시오 .
1
---
1
1 1
---
1 0 1
1 1
1 1
---
1 0 1
0 0 0
1 0 1
1 0
0 1
---
1 0 0
0 0 1
우리는 0의 행이 아닌 0의 열을 추가했습니다. 필요한 0의 수가 같고 열이 선호되기 때문입니다.
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
---
1 0 0 0 1
0 0 0 0 0
0 1 0 1 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 1 0 1 0
우리는 열이 아닌 행을 추가 했으므로 최소 0이 필요합니다.
0 0 1 0 0
0 1 1 1 0
---
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 1 0 1 0 1 0
이를 위해서는 열과 행이 모두 필요했습니다.
0 0 1 0 0
0 1 0 1 0
---
0 0 0 1 0 0 0
0 1 0 0 0 1 0
물이 덜 필요하므로 한 열보다 두 개의 열을 추가하는 것이 좋습니다.
0 0
1 0
0 1
1 0
0 0
---
0 0
1 0
0 0
0 1
0 0
1 0
0 0
물이 덜 필요하므로 하나의 열보다 두 개의 행을 추가하는 것이 좋습니다.