-
2580번: 스도쿠
스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루
www.acmicpc.net
코드
import sys li = list(list(map(int,input().split())) for i in range(9)) zeros = list([i,j] for i in range(9) for j in range(9) if li[i][j] == 0) def sdoku(index): if index == len(zeros): for row in li: print(*row) sys.exit(0) else: x = zeros[index][0] y = zeros[index][1] dx = (x//3)*3 dy = (y//3)*3 num_list = [False] + [True for i in range(9)] for j in range(9): if (li[x][j]): num_list[li[x][j]] = False if (li[j][y]): num_list[li[j][y]] = False for i in range(dx,dx+3): for j in range(dy,dy+3): check_num = li[i][j] if check_num: num_list[check_num] = False candidate_li = [i for i,k in enumerate(num_list) if k] for num in candidate_li: li[x][y] = num sdoku(index+1) li[x][y] = 0 sdoku(0)
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 14889번 스타트와 링크 (파이썬) (0) 2021.12.29 [백준] 14888번 연산자 끼워넣기 (파이썬) (0) 2021.12.29 [백준] 9663번 N-Queen (파이썬) (0) 2021.12.29 [백준] 15652번 N과 M (4) (파이썬) (0) 2021.12.29 [백준] 15651번 N과 M (3) (파이썬) (0) 2021.12.29