파이썬 | c++ | 백준 | 4963 | 섬의 개수 | del list
# 4963, 섬의 개수 import sys sys.setrecursionlimit(10000) dx = [-1, -1, -1, 0, 0, 1, 1, 1] dy = [1, 0, -1, 1, -1, 1, 0, -1] def dfs(x, y): visited[x][y] = 1 for i in range(8): nx = x + dx[i] ny = y + dy[i] if 0 = w) continue; else { if (map[nx][ny] == 1 && visited[nx][ny] == 0) dfs(nx, ny); } } } int main() { //int w, h; while (true) { cin >> w >> h; if (w == 0 && h == 0) { break; } for (int i = 0; ..
파이썬 | 백준 | 6593 | 상범 빌딩
solution 1. bfs이용 (6방향 → 3차원 배열) # 6593, 상범빌딩 import sys from collections import deque dx = [-1, 1, 0, 0, 0, 0] dy = [0, 0, -1, 1, 0, 0] dz = [0, 0, 0, 0, -1, 1] def bfs(z, x, y): visited[z][x][y] = 1 q = deque() q.append((z, x, y)) while q: c, a, b = q.popleft() for i in range(6): nz = c + dz[i] nx = a + dx[i] ny = b + dy[i] if 0
파이썬 | 백준 | 7569 | 토마토 | bfs 3차원 시간초과
solution 1. 상자의 수 H → 3차원 배열 tomatoes[z][x][y] 2. 최소 일수 → BFS # 7569, 토마토 import sys from collections import deque dx = [-1, 1, 0, 0, 0, 0] dy = [0, 0, -1, 1, 0, 0] dz = [0, 0, 0, 0, -1, 1] def bfs(x,y,z): q = deque() q.append((x, y, z)) visited[z][x][y] = 1 cnt = 0 while q: a, b, c = q.popleft() for i in range(6): nx = a + dx[i] ny = b + dy[i] nz = c + dz[i] if 0