Scribbling

36. Valid Sudoku 본문

Computer Science/Coding Test

36. Valid Sudoku

focalpoint 2021. 9. 6. 16:37
class Solution:
    def isValidSudoku(self, board: List[List[str]]) -> bool:
        for i in range(9):
            for j in range(9):
                if board[i][j] != '.':
                    # 가로
                    for k in range(9):
                        if k == j:
                            continue
                        if board[i][j] == board[i][k]:
                            return False
                    # 세로
                    for k in range(9):
                        if k == i:
                            continue
                        if board[i][j] == board[k][j]:
                            return False
                    # 사각형
                    start_y = i // 3 * 3
                    start_x = j // 3 * 3
                    for y in range(start_y, start_y+3):
                        for x in range(start_x, start_x + 3):
                            if y == i or x == j:
                                continue
                            if board[i][j] == board[y][x]:
                                return False
        return True

'Computer Science > Coding Test' 카테고리의 다른 글

LeetCode: 40. Combination Sum II  (0) 2021.09.07
37. Sudoku Solver  (0) 2021.09.06
44. Wildcard Matching  (0) 2021.09.06
LeetCode: 48. Rotate Image  (0) 2021.09.05
39. Combination Sum  (0) 2021.09.04