2239.スドック
質問リンク
2239.スドック
問題コード
def is_promising(blank,num):
x,y = blank
if num in sudoku[x]: #가로 검사
return False
for i in range(9): #세로 검사
if num == sudoku[i][y]:
return False
square_x = x//3
square_y = y//3
for i in range(square_x*3,square_x*3+3):
for j in range(square_y*3,square_y*3+3):
if num == sudoku[i][j]:
return False
return True
def print_sudoku():
print("==========")
for i in range(9):
print(sudoku[i])
def back_tracking(idx):
global is_solved
if is_solved == True:
return
if idx >= len(blank_list):
is_solved = True
return
blank = blank_list[idx]
for i in range(1,10):
if is_promising(blank,i):
sudoku[blank[0]][blank[1]] = i
#print_sudoku()
back_tracking(idx+1)
if is_solved == True:
return
sudoku[blank[0]][blank[1]] = 0
sudoku = [[0 for col in range(9)]for row in range(9)]
blank_list = []
for i in range(9):
num_list = input()
for j in range(9):
sudoku[i][j] = int(num_list[j])
if sudoku[i][j] == 0:
blank_list.append([i,j])
is_solved = False
back_tracking(0)
for i in range(9):
result = ""
for j in range(9):
result += str(sudoku[i][j])
print(result)
問題を解く
出力
Reference
この問題について(2239.スドック), 我々は、より多くの情報をここで見つけました https://velog.io/@youngjin_kim2/2239.-스도쿠テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol