[백준 16946번] 벽 부수고 이동하기 4 (Python3)
import sys input = sys.stdin.readline from collections import deque dy = [1,-1,0,0] dx = [0,0,1,-1] N,M = map(int,input().split()) MAP = [] for i in range(N): MAP.append(list(map(int,list(input().strip())))) wall = [] for i in range(N): #벽 좌표 찾기 for j in range(M): if MAP[i][j] == 1: wall.append((i,j)) cntlist = {} def BFS(y,x,num): dq = deque() dq.append((y,x)) cnt = 0 while dq: y,x = dq.popleft..
[백준 16724번] 피리 부는 사나이 (Python3)
import sys input = sys.stdin.readline N,M = map(int,input().split()) MAP = [] direction = {"U":[-1,0],"D":[1,0],"R":[0,1],"L":[0,-1]} parent = {(i,j):(i,j) for i in range(N) for j in range(M)} def findparent(tuple): if parent[tuple] == tuple: return tuple else: parent[tuple] = findparent(parent[tuple]) return parent[tuple] for i in range(N): MAP.append(input().strip()) for i in range(N): for j i..
[백준 2342번] Dance Dance Revolution (Python3)
import sys input = sys.stdin.readline import heapq INF = 10**9 DDR = list(map(int,input().split())) DDR.pop() def force(now,next): if now == next: return 1 l1,r1 = foot[now] l2,r2 = foot[next] set1 = {l1,r1} set2 = {l2,r2} if set1&set2: if (l1+r1+l2+r2)%2 == 1: return 3 else: return 4 return INF N = len(DDR) if N == 0: print(0) else: DP = [[INF]*(N) for i in range(6)] foot = [[1,2],[1,3],[1,4],[..