[Leetcode]36. Valid Sudoku(x)

2024. 7. 31. 16:28Algorithm

1. problem :

https://leetcode.com/problems/valid-sudoku/description/

 

2. solution 1 :

class Solution:
    def isValidSudoku(self, board: List[List[str]]) -> bool:
        rows = [set() for _ in range(9)]
        cols = [set() for _ in range(9)]
        boxes = [set() for _ in range(9)]

        for r in range(9):
            for c in range(9):
                num = board[r][c]
                if num != '.':
                    box_index = (r // 3) * 3 + (c // 3) 

                    if num in rows[r] or num in cols[c] or num in boxes[box_index]:
                        return False 
                    rows[r].add(num)
                    cols[c].add(num)
                    boxes[box_index].add(num)

        return True

 

한줄평 : 행 9개 만들고, 열 9개 만들고, 박스 9개 만들고(물론 다 set으로) 각각 관리하자.