이전 토마토 시리즈 (7576, 7569) 문제들의 뇌절 버전이다. 11차원에서 BFS를 수행하면 되는데, 어렵게 생각하지 말고 이전 문제들에서 dx, dy, dz 들을 잘 세팅해서 푼 것 처럼 이 문제도 각 좌표에 대한 이동 경로를 잘 구현해주면 쉽게 풀린다.

const int dm[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1};
const int dn[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0};
const int dO[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0};
const int dp[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0};
const int dq[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0};
const int dr[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const int ds[] = {0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const int dt[] = {0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const int du[] = {0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const int dv[] = {0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const int dw[] = {-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

이전 토마토 문제도 그렇고 이런 좌표를 설정해놓는 문제는 규칙이 존재하기 때문에 쉽게 생각할 수 있다. 좌표 실수를 조심하자.

'PS > baekjoon' 카테고리의 다른 글

[BOJ 10816] 숫자 카드 2  (2) 2023.07.03
[BOJ 1920] 수 찾기  (0) 2023.07.03
[BOJ 9663] N-Queen  (0) 2023.07.03
[BOJ 7562] 나이트의 이동  (0) 2023.07.02
[BOJ] 7579 : 토마토 (3차원 BFS)  (0) 2023.07.02

+ Recent posts