- ์ด ๋ฌธ์ ๋ C++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค.
๋ฌธ์
์์
ํ์ด
#include<iostream>
#include<vector>
using namespace std;
int n,m,r,c,num;
int arr[30][30];
int dir[5][2]={{0,0},{0,1},{0,-1},{-1,0},{1,0}}; // ๋ฐฉํฅ ๋ฐฐ์ด (0,0)์ ๋ฌด์
int dice[3][3]={0}; // ์ฃผ์ฌ์
int back=0; // ์ฃผ์ฌ์ ๋ฐ
struct node{
int y,x;
node(int y,int x):y(y),x(x){}
};
bool inside(int a,int b){
return 0<=a && a<n && 0<=b && b<m;
}
int main(){
cin>>n>>m>>r>>c>>num;
vector<int> v;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>arr[i][j];
}
}
node nd=node(r,c);
for(int i=0;i<num;i++){
int d;
cin>>d;
int dy=dir[d][0]+nd.y;
int dx=dir[d][1]+nd.x;
if(inside(dy,dx)){
nd=node(dy,dx);
if(d==1){
int temp=dice[1][2];
dice[1][2]=dice[1][1];
dice[1][1]=dice[1][0];
dice[1][0]=back;
back=temp;
}
else if(d==2){
int temp=dice[1][0];
dice[1][0]=dice[1][1];
dice[1][1]=dice[1][2];
dice[1][2]=back;
back=temp;
}
else if(d==3){
int temp=dice[0][1];
dice[0][1]=dice[1][1];
dice[1][1]=dice[2][1];
dice[2][1]=back;
back=temp;
}
else{
int temp=dice[2][1];
dice[2][1]=dice[1][1];
dice[1][1]=dice[0][1];
dice[0][1]=back;
back=temp;
}
if(arr[dy][dx]==0){
arr[dy][dx]=back;
}
else{
back=arr[dy][dx];
arr[dy][dx]=0;
}
v.push_back(dice[1][1]);
}
}
for(int i=0;i<v.size();i++){
cout<<v[i]<<' ';
}
}โ
- ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด๋ ์์ ํ ๋ถ๋ถ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.