18428
import sys
from collections import deque
n = int(sys.stdin.readline().strip())
dx = [1,-1,0,0]
dy = [0,0,1,-1]
dq = deque()
graph = []
for _ in range(n):
graph.append(list(sys.stdin.readline().split()))
def bfs():
visited = [[False] * n for _ in range(n)]
for i in range(n):
for j in range(n):
if graph[i][j] == 'T':
dq.append((i,j))
while dq:
x,y = dq.popleft()
for i in range(4):
tx,ty = x,y
while True:
nx = tx + dx[i]
ny = ty + dy[i]
if 0 <= nx < n and 0 <= ny < n:
def recursive(index):
if check:
print("YES")
else:
print("NO")
16234
import sys
from collections import deque
graph = []
n,l,r = map(int,sys.stdin.readline().split())
for _ in range(n):
graph.append(list(map(int,sys.stdin.readline().split())))
dx = [1,-1,0,0]
dy = [0,0,1,-1]
def bfs(y,x):
dq = deque()
tmp = []
dq.append((y,x))
tmp.append((y,x))
people = 0
cnt = 0
visited[y][x] = True
while dq:
y,x = dq.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < n and 0 <= ny < n and not visited[ny][nx]:
if l <= abs(graph[ny][nx]-graph[y][x]) <= r:
visited[ny][nx] = True
dq.append((ny, nx))
tmp.append((ny,nx))
return tmp
day = 0
while True:
visited = [[False] * n for _ in range(n)]
check = False
for i in range(n):
for j in range(n):
if visited[i][j] == False:
visited[i][j] == True
tmp = bfs(i,j)
if len(tmp) > 1:
check = True
num = 0
for y,x in tmp:
num += graph[y][x]
num = num // len(tmp)
for y,x in tmp:
graph[y][x] = num
if not check:
break
day += 1
print(day)
괄호변환
def divide(p):
l = 0
r = 0
for i in range(len(p)):
if p[i] == "(":
l += 1
else:
r += 1
if l == r:
return p[:i+1],p[i+1:]
def check(u):
cnt = 0
for i in range(len(u))
if u[i] == "(":
cnt += 1
else:
if cnt == 0:
return False
cnt -= =1
return True
def solution(p):
answer = ''
if len(p) == 0:
return answer
else:
u,v = divide(p)
if check(u):
result = u + solution(v)