Menu
CoddyTech

Valid Sudoku

보통해싱python iconjava iconcpp iconc iconjs icon+10

9개의 문자열로 이루어진 목록인 board가 주어집니다. 각 문자열은 9개의 문자로 구성되며, 각 문자열은 한 행에 해당합니다. 각 문자는 1부터 9까지의 숫자이거나 빈 칸을 나타내는 .입니다. 같은 행, 같은 열 또는 같은 3 × 3 박스에 어떤 숫자도 두 번 나타나지 않으면 true를 반환하고, 그렇지 않으면 false를 반환하세요. 채워진 칸만 확인합니다. 보드가 풀 수 있는 상태일 필요는 없습니다.

함수

isValidSudoku(board: string-array) → boolean
boardstring-array
각 행마다 9개의 문자로 이루어진 문자열 9개. 숫자 1부터 9까지와 빈 셀을 나타내는 .
반환값boolean
행, 열 또는 3 × 3 상자에 숫자가 반복되지 않으면 true, 그렇지 않으면 false

제약 조건

  • board.length == 9이고 board[i].length == 9
  • board[i][j]는 1부터 9까지의 숫자이거나 .입니다.
  • 보드를 완성하는 것이 불가능할 수도 있습니다. 채워진 셀 사이의 반복만 중요합니다.

예제

입력
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
출력
true
설명
각 행, 열, 박스에는 각 숫자가 최대 한 번씩만 들어갑니다. 0부터 세는 행 4인 .74..89.3에는 7, 4, 8, 9, 3이 각각 한 번씩 들어 있으며, 나머지 26개 그룹도 마찬가지이므로 답은 true입니다.

lock icon제출 시 숨은 테스트 +16개

challenge icon

후속 질문

검사를 4 × 4 상자가 있고 기호 1부터 9와 A부터 G를 사용하는 16 × 16 보드에 맞게 일반화하세요. 코드에서 보드 크기에 따라 달라지는 숫자는 무엇이며, 상자 공식은 어떻게 바뀌나요?

코드 초기화
def isValidSudoku(board):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]

기대값

true