티스토리 뷰
https://www.acmicpc.net/problem/14499
d 배열에 주사위 전개도의 1~6 위치의 값들을 관리하면서 시뮬레이션 해본다. 이동한 후 지도의 값이 0이면 밑면(d[6])의 수를 복사하고 아니라면 지도의 값을 밑면의 수에 복사하고 지도의 값을 0으로 바꾼다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <cstdio> int n,m,map[20][20],d[7],x,y,k,op,nx,ny; int dx[5]={0,0,0,-1,1},dy[5]={0,1,-1,0,0}; void move(int op) { int t; if(op==1) t=d[1],d[1]=d[4],d[4]=d[6],d[6]=d[3],d[3]=t; else if(op==2) t=d[1],d[1]=d[3],d[3]=d[6],d[6]=d[4],d[4]=t; else if(op==3) t=d[1],d[1]=d[5],d[5]=d[6],d[6]=d[2],d[2]=t; else t=d[1],d[1]=d[2],d[2]=d[6],d[6]=d[5],d[5]=t; } int main() { scanf("%d %d %d %d %d",&n,&m,&x,&y,&k); for(int i=0;i<n;i++) for(int j=0;j<m;j++) scanf("%d",&map[i][j]); while(k--) { scanf("%d",&op); nx=x+dx[op],ny=y+dy[op]; if(nx<0 || nx>=n || ny<0 || ny>=m) continue; x=nx,y=ny; move(op); if(map[x][y]==0) map[x][y]=d[6]; else d[6]=map[x][y],map[x][y]=0; printf("%d\n",d[1]); } return 0; } | cs |
'Algorithm > BOJ' 카테고리의 다른 글
14502 연구소 (0) | 2018.04.09 |
---|---|
14501 퇴사 (0) | 2018.04.06 |
13458 시험 감독 (0) | 2018.04.06 |
12100 2048 (Easy) (0) | 2018.04.06 |
13567 로봇 (0) | 2018.04.02 |