18428,16234,괄호변환

yerimstar·2022년 1월 27일

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): # u,v 나누기
    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) 
        
        # 이어서 짜야 하는 부분
profile
백엔드 개발자

0개의 댓글