baekjoon 20251208

This commit is contained in:
songyc macbook 2025-12-08 21:01:01 +09:00
parent 831a6dcace
commit 4aa7d1cdd3
2 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,49 @@
import sys
input = sys.stdin.readline
board = []
emptyAxis = []
row_check = [[False]*10 for _ in range(9)]
col_check = [[False]*10 for _ in range(9)]
square_check = [[False]*10 for _ in range(9)]
def square_idx(r, c) :
return (r//3)*3 + c//3
def backTracking(depth) :
if depth == len(emptyAxis) :
for row in board :
print("".join(map(str, row)))
exit(0)
row, col = emptyAxis[depth]
sqr_idx = square_idx(row, col)
for num in range(1, 10) :
if not row_check[row][num] and not col_check[col][num] and not square_check[sqr_idx][num] :
board[row][col] = num
row_check[row][num] = True
col_check[col][num] = True
square_check[sqr_idx][num] = True
backTracking(depth+1)
board[row][col] = 0
row_check[row][num] = False
col_check[col][num] = False
square_check[square_idx(row, col)][num] = False
for i in range(9) :
row = list(map(int, list(input().strip())))
board.append(row)
for j in range(9) :
num = row[j]
if num == 0 :
emptyAxis.append((i,j))
else :
row_check[i][num] = True
col_check[j][num] = True
square_check[square_idx(i,j)][num] = True
backTracking(0)

View File

@ -0,0 +1,29 @@
import heapq
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
graph = [[] for _ in range(N+1)]
inDegree = [0]*(N+1)
for _ in range(M) :
u, v = map(int, input().split())
graph[u].append(v)
inDegree[v] += 1
pq = []
for i in range(1,N+1) :
if inDegree[i] == 0 :
heapq.heappush(pq, i)
result = []
while len(pq) :
current = heapq.heappop(pq)
result.append(str(current))
for next in graph[current] :
inDegree[next] -= 1
if inDegree[next] == 0 :
heapq.heappush(pq, next)
print(" ".join(result))