[알고리즘/leetcode] Valid Sudoku(python)

유현민·2022년 8월 31일
0

알고리즘

목록 보기
244/253

딕셔너리를 이용하여 해결했다. 있으면 false를 리턴하고 없으면 추가했다.

from collections import defaultdict


class Solution:
    def isValidSudoku(self, board):
        N = 9
        row = defaultdict(list)
        col = defaultdict(list)
        box = defaultdict(list)

        for r in range(N):
            for c in range(N):
                val = board[r][c]

                if val == '.':
                    continue

                if val in row[r]:
                    return False
                row[r].append(val)

                if val in col[c]:
                    return False
                col[c].append(val)

                idx = (r // 3) * 3 + c // 3
                if val in box[idx]:
                    return False
                box[idx].append(val)

        return True
profile
smilegate

0개의 댓글