파이썬 | 백준 | 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
파이썬 | 백준 | 1074 | Z
solution1 : 2차원 배열 1. 2차원 배열을 -1로 초기화해둔 후 재귀함수를 호출하며 1씩 증가되는 수를 저장 2. lst[r][c] 출력 # 1074, Z import sys input = sys.stdin.readline def z(x, y, k): global num if k == 2: if lst[x][y] == -1: for i in range(2): for j in range(2): lst[x+i][y+j] = num num += 1 else: z(x, y, k // 2) z(x, y + k // 2, k // 2) z(x + k // 2, y, k // 2) z(x + k // 2, y + k // 2, k // 2) N, r, c = map(int, input().split()) ..
파이썬 | 백준 | 1992 | 쿼드트리
solution 1. 사분면을 나눌 때 괄호 추가 2. (x, y) → (y, x) # 1992, 쿼드트리 import sys def com(x, y, n): check = bw[x][y] global res for i in range(x, x + n): for j in range(y, y + n): if bw[i][j] != check: # 영상이 같은 색이 아님 print('(', end='') com(x, y, n // 2) # 1 com(x, y + n // 2, n // 2) # 2 com(x + n // 2, y, n // 2) # 3 com(x + n // 2, y + n // 2, n // 2) # 4 print(')', end='') return if check == 0: # 영상이 모두..