I posted it earlier, but it is possible that the link did not meet the terms, so I deleted it and reposted. I also tried to correct the pointed out point. Last time, I realized it by using three while statements, but I changed it to a for statement. I have received advice on using .numpy, so I would like to understand that and take on the challenge.
target1 = [[1,2,3],
[2,3,1],
[3,1,2]]
target2 = [[1,1,1],
[2,2,2],
[3,3,3]]
target3 = [[1,2,3],
[2,3,1],
[1,3,2]]
target4 = [[1,2,3,4,5],
[2,3,4,5,1],
[3,4,5,1,2],
[4,5,1,2,3],
[5,1,2,3,4]]
def check(target):
n = len(target)
digit = 1
for i in range(0, n): #The number of elements is 3, which is 0 to 3, that is, 0.,1,2
row_count = 0
col_count = 0
for j in range(0, n):
if target[i][j] == digit:
row_count += 1
if target[j][i] == digit:
col_count += 1
if row_count != 1 or col_count != 1:
return False
digit += 1
return True
def test():
print('For Sudoku form')
assert check(target1) == True
print('If the contents of the list are all the same number')
assert check(target2) == False
print('If only the last list does not meet the criteria')
assert check(target3) == False
print('Normal system in the case of 5 × 5')
assert check(target4) == True
print('test ok')
test()
Recommended Posts