[백준 15730번] 수영장 사장님 (Python3)
import sys input = sys.stdin.readline from collections import deque dy = [1,-1,0,0] dx = [0,0,1,-1] def BFS(): visited = [[0]*(M+2) for i in range(N+2)] dqlist[0].append((0,0)) for n in range(10001): while dqlist[n]: y,x = dqlist[n].popleft() if visited[y][x]: continue visited[y][x] = 1 waterlevel[y][x] = n for i in range(4): y1,x1 = y+dy[i],x+dx[i] if N+2>y1>=0 and M+2>x1>=0: if visited[y1][x1]..
[백준 3197번] 백조의 호수 (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()) lake = [] for i in range(N): lake.append([*map(lambda x:-1 if x=="X" else 0 if x=="." else 1,input().strip())]) swan = [] dq = deque() for y ..
[백준 1113번] 수영장 만들기 (Python3)
import sys input = sys.stdin.readline from collections import deque dy = [1,-1,0,0] dx = [0,0,1,-1] def BFS(y,x,n): visited = [[0]*M for i in range(N)] dq = deque() dq.append((y,x)) co = [] border = [] while dq: y,x = dq.popleft() if visited[y][x]: continue visited[y][x] = 1 if pool[y][x] >= n: border.append((y,x)) continue co.append((y,x)) for i in range(4): y1,x1 = y+dy[i],x+dx[i] if not (N>y1..