Takuzu는 0
s와 1
s를 포함하는 셀로 그리드를 완성해야하는 논리 게임입니다 . 그리드는 3 가지 규칙을 따라야합니다.
- 3 개의 수평 또는 수직 연속 셀은 동일 할 수 없습니다.
- 각 행과 열에 동일한 수의
0
s와1
s 가 있어야합니다 . - 두 행이 같을 수 없으며 두 열이 같을 수도 없습니다.
완성 된 그리드를 살펴 보겠습니다.
0011
1100
0101
1010
당신이 볼 수 있듯이,이 보드는 규칙을 다음 1
, 2
하고 3
. 동일한 3 개의 수평 또는 수직 셀이 없으며 모든 행과 열에 동일한 수의 0
s와 1
s가 포함되며 두 행과 두 열이 동일하지 않습니다.
유효하지 않은 그리드를 봅시다 :
110100
010011
011010
101100
100011
001101
이 그리드에는 많은 문제가 있습니다. 예를 들어, 행 5
에는 행 에 세 개의 0
s가 있고 열에 2
는 1
행에 세 개의 0
s가 있고 그 뒤에 세 개가 있습니다. 따라서 이것은 유효한 그리드가 아닙니다.
태스크:
당신의 임무는 n
* n
0
와 1
s 의 2D 배열이 주어진 보드가 유효하고 완성 된 Takuzu 보드인지 확인하기 위해 보드를 검증 하는 프로그램을 만드는 것 입니다.
예 :
0011
1100
0101
1010
이 보드는 모든 규칙을 따르므로 유효한 Takuzu 보드입니다. 이것에 대해 진실한 가치를 돌려 주어야합니다.
11
00
이것은 유효한 보드 행 1
이 규칙을 따르지 않습니다 2
. 이에 대한 잘못된 값을 반환해야합니다.
100110
101001
010101
100110
011010
011001
이것은 유효한 보드가 아니며 규칙 3으로 인해 실패합니다 (첫 번째와 네 번째 행이 동일합니다).
110100
001011
010011
101100
100110
011001
이것은 유효한 보드가 아니며 규칙 3으로 인해 실패합니다 (첫 번째와 네 번째 열은 동일합니다).
011010
010101
101100
010011
100110
101001
이것은 유효한 보드입니다.
규칙 및 사양 :
- 모든 보드가 치수의 제곱이라고 가정 할 수 있습니다
n * n
. 여기서n
양의 정수는 정수입니다. - 모든 보드가 완성되었다고 가정 할 수 있습니다.
- 넌 나타내는 값을 포함하는 2 차원 배열로 입력 걸릴 수
0
및1
또는 문자열. - 진실과 거짓 보드에 대해 일관된 진실과 거짓 값을 출력해야하며 "truthy"와 "falsey"를 나타내는 값은 같을 수 없습니다.
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!