엔지니어 게시판
LeetCode 솔루션 분류

# [11/23] 36. Valid Sudoku

• 학부유학생 작성
• 작성일

• 87 조회
• 1 댓글
• 0 추천
• 0 비추천

### 본문

Medium

Determine if a `9 x 9` Sudoku board is valid. Only the filled cells need to be validated according to the following rules:

1. Each row must contain the digits `1-9` without repetition.
2. Each column must contain the digits `1-9` without repetition.
3. Each of the nine `3 x 3` sub-boxes of the grid must contain the digits `1-9` without repetition.

Note:

• A Sudoku board (partially filled) could be valid but is not necessarily solvable.
• Only the filled cells need to be validated according to the mentioned rules.

Example 1:

```Input: board =
[["5","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
Output: true
```

Example 2:

```Input: board =
[["8","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
Output: false
Explanation: Same as Example 1, except with the 5 in the top left corner being modified to 8. Since there are two 8's in the top left 3x3 sub-box, it is invalid.
```

Constraints:

• `board.length == 9`
• `board[i].length == 9`
• `board[i][j]` is a digit `1-9` or `'.'`.
Accepted
961,603
Submissions
1,669,639

댓글 1

## 학부유학생님의 댓글

• 작성일
``````class Solution:
def isValidSudoku(self, board: List[List[str]]) -> bool:
ROW, COL = len(board), len(board[0])

# check each col
for r in range(ROW):
check = [0]*10
for c in range(COL):
if board[r][c].isdigit():
if check[int(board[r][c])]: return False
check[int(board[r][c])] += 1

# check each row
for c in range(COL):
check = [0]*10
for r in range(ROW):
if board[r][c].isdigit():
if check[int(board[r][c])]: return False
check[int(board[r][c])] += 1

for row in range(3):
for col in range(3):
start_r = row*3
start_c = col*3

check = [0]*10
for r in range(start_r, start_r+3):
for c in range(start_c, start_c+3):
if board[r][c].isdigit():
if check[int(board[r][c])]: return False
check[int(board[r][c])] += 1

return True``````
전체 307 / 1 페이지

• 등록일 04:05
• 등록일 04:04
• 등록일 04:04
• 등록일 04:04
• 등록일 04:03
• 등록일 04:02
• 등록일 04:01
• 등록일 04:00
• 등록일 04:00
• 등록일 00:27

• 등록일 11.29
• 등록일 11.29
• 등록일 11.26

### Stats

• 현재 접속자 41 명
• 오늘 방문자 746 명
• 어제 방문자 2,154 명
• 최대 방문자 2,154 명
• 전체 회원수 451 명