백준 #27982 큐브 더미
문제 링크
문제 설명
$N\times N\times N$크기의 입체공간이 있고 공간 안에는 $M$개의 큐브가 존재할 때 각 큐브를 중심으로 거리가 1만큼 떨어진 큐브가 6개인 큐브를 찾는 문제
코드
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
arr = [[[False] * (N + 2) for _ in range(N + 2)] for _ in range(N + 2)]
cube = []
for _ in range(M):
a, b, c = map(int, input().split())
cube.append((a, b, c))
arr[a][b][c] = True
dr = [-1, 1, 0, 0, 0, 0]
dc = [0, 0, -1, 1, 0, 0]
dh = [0, 0, 0, 0, -1, 1]
cnt = 0
for r, c, h in cube:
for k in range(6):
nr, nc, nh = r + dr[k], c + dc[k], h + dh[k]
if not arr[nr][nc][nh]:
break
else:
cnt += 1
print(cnt)
풀이
$(N+2) \times (N+2) \times (N+2)$크기의 배열을 만들어준다음 큐브의 위치를 기록하고 각 큐브들로부터 거리가 1 떨어진 곳들에 전부 큐브가 존재하는지 확인해주었다.
Mathjax쓰는데 Mathjax랑 텍스트랑 띄어쓸 경우 인식이 될때가 있고 안될 때가 있다.. 뭘까 ㅠㅠㅠ
댓글남기기