인프런 커뮤니티 질문&답변

thehrto12님의 프로필 이미지
thehrto12

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

10. 스토쿠 검사

해시맵을 사용해서 풀어보았습니다 혹시 예외나 틀린 부분이 있을까요

작성

·

354

·

수정됨

0

# 스도쿠 제대로 풀었는지 검사하는 알고리즘
import sys
sys.stdin = open("./탐색&시뮬레이션/스도쿠.txt", 'r')
n = 9


def solution(sudoku):  

    for i in range(len(sudoku)):
        rawTable = {}
        colTable = {}
        for j in range(n):
            if sudoku[i][j] in rawTable or sudoku[j][i] in colTable:
                
                return False
            else:
                rawTable[sudoku[i][j]] = sudoku[i][j]
                colTable[sudoku[j][i]] = sudoku[j][i]
    # 이제 3*3 검사도 하자
    

    for i in range(3):    
        for j in range(3):
            matrixTable = {}    
            for k in range(3):
                for s in range(3):
                    if sudoku[i*3+k][i*3+s] in matrixTable:
                        return False
                    else:
                        matrixTable[sudoku[i*3+k][i*3+s]] = sudoku[i*3+k][i*3+s]
                    
    return True    
    
sudoku = [list(map(int, input().split())) for _ in range(n)]
if solution(sudoku):
    print('Yes')
else:
    print('No')

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
thehrto12님의 프로필 이미지
thehrto12

작성한 질문수

질문하기