[백준 14868번] 문명 (Python3)
import sys,collections input = sys.stdin.readline dy = [1,-1,0,0]; dx = [0,0,1,-1] def BFS(): connect = 0 while dq: y,x,k,t = dq.popleft() if visited[y][x]: continue visited[y][x] = k for i in range(4): y1,x1 = y+dy[i],x+dx[i] if N>y1>=0 and N>x1>=0: k1 = visited[y1][x1] if k1: if find(k)==find(k1): continue parent[parent[k1]] = parent[k] connect += 1 if connect == K-1: return t else: dq.append(..
[백준 9376번] 탈옥 (Python3)
import sys,collections input = sys.stdin.readline dy = [1,-1,0,0]; dx = [0,0,1,-1] def check(y,x): MIN = [1e5]*3 for i in range(4): y1,x1 = y+dy[i],x+dx[i] if N>y1>=0 and M>x1>=0: for n in range(3): MIN[n] = min(MIN[n],visited[n][y1][x1]) return sum(MIN) def BFS(y,x): visited = [[1e5]*M for i in range(N)] dq = collections.deque([(y,x,0)]) while dq: y,x,c = dq.popleft() if visited[y][x]y1>=0 and ..
[백준 3679번] 단순 다각형 (Python3)
import sys,math input = sys.stdin.readline for _ in range(int(input())): data = [*map(int,input().split())]; N = data[0] co = sorted([(data[i*2+2],data[i*2+1],i) for i in range(N)]) y0,x0,n0 = co[0]; stack = [] for i in range(1,N): y,x,n = co[i] d = math.sqrt((x-x0)**2+(y-y0)**2) stack.append((int((x0-x)/d*1e9),int(d*1e9),n)) stack.sort() cos0 = stack[-1][0] for i in range(N-1): if stack[-i-1][0..