3차원 입체 공간 상의 큐브 배치를 윗면(Top), 정면(Front), 우측면(Right) 2차원 평면 뷰로 투영 변환하고 큐브 개수를 정확하게 산출하는 3D 매트릭스 알고리즘을 학습합니다.
1. 3D 매트릭스 알고리즘 용어 사전 (Glossary)
- 3D Spatial Matrix:
P[depth][height][width]형태의 3차원 공간 배열입니다. - Top View Projection: 3차원 입체 공간을 위에서 내려다보았을 때 각 $(j, k)$ 위치에서 관측되는 큐브의 존재 여부를 2D 평면 배열로 추출하는 연산입니다.
assert(단언문): 프로그램 실행 전제 조건이 참인지 검증하고 에러를 사전에 차단하는 디버깅 구문입니다.
2. Top View 추출 및 큐브 카운팅 실전 알고리즘 소스
def topView(P):
assert len(P) == len(P[0]) == len(P[0][0]), "3차원 정방형 매트릭스여야 합니다."
n = len(P)
V = [[0] * n for _ in range(n)]
for j in range(n):
for k in range(n):
for i in range(n):
if P[i][j][k] == 1:
V[j][k] = 1
break
return V
P_3d = [
[[1, 0], [0, 1]],
[[0, 0], [1, 0]]
]
v_top = topView(P_3d)
print("=== [3D 매트릭스 Top View 투영 결과] ===")
for row in v_top:
print(row)