Recent Posts
Notice
No Rules Rules
주사위 굴리기 (feat. 백준, 14499번) 본문
728x90
반응형
주사위 굴리기
https://www.acmicpc.net/problem/14499
반응형
// woohyeon.kim
#include <iostream>
#include <queue>
using namespace std;
int N, M, K;
int maps[21][21];
int dx[4], dy[4];
int dice[4][3];
int tmp_dice[4][3];
int cmd[1001];
void turn_dice(const int& direction)
{
for (auto ix = 0; ix < 4; ++ix)
{
for (auto iy = 0; iy < 3; ++iy)
tmp_dice[ix][iy] = dice[ix][iy];
}
if (direction == 1) // 동쪽
{
dice[1][0] = tmp_dice[3][1], dice[1][1] = tmp_dice[1][0], dice[1][2] = tmp_dice[1][1], dice[3][1] = tmp_dice[1][2];
}
else if (direction == 2) // 서쪽
{
dice[1][0] = tmp_dice[1][1], dice[1][1] = tmp_dice[1][2], dice[1][2] = tmp_dice[3][1], dice[3][1] = tmp_dice[1][0];
}
else if (direction == 3) // 북쪽
{
dice[0][1] = tmp_dice[1][1], dice[1][1] = tmp_dice[2][1], dice[2][1] = tmp_dice[3][1], dice[3][1] = tmp_dice[0][1];
}
else // 남쪽
{
dice[0][1] = tmp_dice[3][1], dice[1][1] = tmp_dice[0][1], dice[2][1] = tmp_dice[1][1], dice[3][1] = tmp_dice[2][1];
}
}
void bfs(int x, int y)
{
for(auto idx = 0; idx < K; ++idx)
{
auto& direction = cmd[idx];
auto nx = x + dx[direction - 1], ny = y + dy[direction - 1];
if (0 <= nx && nx < N && 0 <= ny && ny < M)
{
turn_dice(direction);
x = nx, y = ny;
if (maps[x][y] == 0)
maps[x][y] = dice[3][1];
else
dice[3][1] = maps[x][y], maps[x][y] = 0;
cout << dice[1][1] << endl;
}
}
}
int main()
{
dx[0] = 0, dx[1] = 0, dx[2] = -1, dx[3] = 1;
dy[0] = 1, dy[1] = -1, dy[2] = 0, dy[3] = 0;
auto x = 0, y = 0;
cin >> N >> M >> x >> y >> K;
for (auto ix = 0; ix < N; ++ix)
{
for (auto iy = 0; iy < M; ++iy)
cin >> maps[ix][iy];
}
for (auto idx = 0; idx < K; ++idx)
cin >> cmd[idx];
for (auto ix = 0; ix < 4; ++ix)
{
for (auto iy = 0; iy < 3; ++iy)
dice[ix][iy] = 0;
}
bfs(x, y);
}
// *&)*@*
동서남북 으로 주사위가 이동할때, 각 면마다의 변경되는 정보만 미리 define하면 되는 간단한 문제입니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
감시 (feat.백준, 15683번) (0) | 2022.07.24 |
---|---|
톱니바퀴 (feat. 백준, 14891번) (0) | 2022.07.24 |
퇴사 (feat. 백준, 14501번) (0) | 2022.07.24 |
2048 (Easy) (feat. 백준, 12100번) (0) | 2022.07.24 |
구슬 탈출 2 (feat. 백준, 13460번) (0) | 2022.07.24 |
Comments