:link:문제 링크

[27982 큐브 더미]

:question:문제 설명

$N\times N\times N$크기의 입체공간이 있고 공간 안에는 $M$개의 큐브가 존재할 때 각 큐브를 중심으로 거리가 1만큼 떨어진 큐브가 6개인 큐브를 찾는 문제

:pencil2:코드

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)

:memo:풀이

$(N+2) \times (N+2) \times (N+2)$크기의 배열을 만들어준다음 큐브의 위치를 기록하고 각 큐브들로부터 거리가 1 떨어진 곳들에 전부 큐브가 존재하는지 확인해주었다.

Mathjax쓰는데 Mathjax랑 텍스트랑 띄어쓸 경우 인식이 될때가 있고 안될 때가 있다.. 뭘까 ㅠㅠㅠ

댓글남기기