[1스4코2파] # 176. LeetCode 36. Valid Sudoku

gunny·2023년 6월 28일
0

코딩테스트

목록 보기
177/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (176차)
[4코1파] 2023.01.13~ (168일차)
[1스4코1파] 2023.04.12~ (79일차)
[1스4코2파] 2023.05.03 ~ (57일차)

Today :

2023.06.28 [176일차]
LeetCode Patterns
https://leetcode.com/problems/valid-sudoku/description/

36. Valid Sudoku

https://leetcode.com/problems/valid-sudoku/description/

문제 설명

9 x 9 shape의 스토쿠 판이 주어졌을 때, 아래의 룰
각 행과 열이 1-9가 반복없이 구성되어 있는지,
3x3 형태의 서브 박스도 1-9가 반복 없이 구성되어 있는지
맞으면 true 아니면 false

문제 풀이 방법

더럽게 복잡해서 neetcode 봄 어쩔

내 코드

from collections import defaultdict
class Solution:
    def isValidSudoku(self, board: List[List[str]]) -> bool:
        cols = defaultdict(set)
        rows = defaultdict(set)
        squares = defaultdict(set)

        for i in range(9):
            for j in range(9):
                if board[i][j] == '.':
                    continue
                if (board[i][j] in rows[i] or
                 board[i][j] in cols[j] or
                  board[i][j] in squares[(i//3, j//3)]):
                    return False
                cols[j].add(board[i][j])
                rows[i].add(board[i][j])
                squares[(i//3, j//3)].add(board[i][j])
        return True

증빙

여담
문제 그지 같넹
야간당직 같은 에너지 낭비를 해야하는 내 인생

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글