• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

안녕하세요. 다른 풀이도 풀었는데 괜찮을까요?

23.02.26 11:54 작성 조회수 294

0

정답은 제대로 나오긴 했는데 시간 초과라던가 하는 문제가 없을까요?

4중 for문은 생각지도 못했네요..ㅠㅠ

 

sudoku = [list(map(int, input().split())) for _ in range(9)]


def solution(sudoku):
    length = len(sudoku)
    a, b, c, = list(), list(), list()
    # 행열 검사
    for i in range(length):
        row, col = list(), list()
        for j in range(length):
            row.append(sudoku[i][j])
            col.append(sudoku[j][i])
        if len(set(row)) != 9 or len(set(col)) != 9:
            return "NO"
        
        # 3x3 격자판 검사
        a.extend(row[0:3])
        b.extend(row[3:6])
        c.extend(row[6:])
        if i == 2 or i == 5 or i == 8:
            if len(set(a)) != 9 or len(set(b)) != 9 or len(set(c)) != 9:
                return "NO"
            a, b, c, = list(), list(), list()
    
    return "YES"


print(solution(sudoku))

답변 1

답변을 작성해보세요.

0

안녕하세요^^

네. 시간초과와는 상관없어 보입니다.