[python] 7569번 - 토마토
문제 파이썬 풀이 해당 문제는 이전 문제인 7576토마토 문제가 3차원으로 변형된 문제이다. 2차원 탐색이였을 때 가졌던 이동 변수인 dx, dy에 dz를 추가하여 좌, 우, 앞, 뒤, 위, 6가지 이동을 할 수 있도록 해주면 될 것 같다. 3차원 탐색 BFS dx = [-1, 1, 0, 0, 0, 0] dy = [0, 0, -1, 1, 0, 0] dz = [0, 0, 0, 0, -1, 1] def bfs() : while q : x, y, z = q.popleft() for i in range(6) : nx = x + dx[i] ny = y + dy[i] nz = z + dz[i] if nx = n or ny = m or nz = h : con..
2021. 12. 12.
[python] 2667번 - 단지번호붙이기
문제 파이썬 풀이 2차원 리스트에서의 탐색은 어떤 식으로 해야 하는지 이해하는데 조금 어려웠었다. 여기서의 포인트는 탐색할 방향인 상하좌우를 이동 좌표를 리스트에 담아 for문을 통해 탐색을 진행하는 것이다. 그리고 탐색의 방법도 dfs를 통해 재귀로 탐색하였다. 좌표 리스트 dx=[-1,0,1,0] dy=[0,1,0,-1] 해당 좌표는 dx, dy에서 같은 인덱스끼리 묶어보면 (-1, 0), (0, 1), (1, 0), (0, -1)로 각각 좌(x축으로 -1 이동), 상(y축으로 +1 이동), 우(x축으로 +1 이동), 하(y축으로 -1 이동)를 의미한다. DFS 탐색 함수 def dfs(x,y) : global cnt matrix[x][y] = "0" #방문한 곳 0으로 만들기 cnt+=1 #카운트 ..
2021. 12. 8.