Skip to content

Commit 108d7c2

Browse files
authored
Create 14499.java
1 parent d0822e8 commit 108d7c2

1 file changed

Lines changed: 120 additions & 0 deletions

File tree

‎hyeon-uk/2022/0109~0115/14499.java‎

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
import java.util.Scanner;
2+
3+
public class Main {
4+
public static int[] dice=new int[6]; //위, 아래, 동,서,남,북
5+
public static int[] mx=new int[]{0,0,-1,1};
6+
public static int[] my=new int[]{1,-1,0,0};
7+
public static int[][] maze;
8+
public static int n,m,x,y,k;
9+
public static final int UP=0,DOWN=1,EAST=2,WEST=3,SOUTH=4,NORTH=5;
10+
public static boolean isIn(int x,int y){
11+
return x>=0&&x<n&&0<=y&&y<m;
12+
}
13+
public static void moveDice(int op){
14+
int temp;
15+
if(op==0){//동
16+
//동->아래
17+
//아래->서
18+
//서->위
19+
//위->동
20+
temp=dice[EAST];
21+
dice[EAST]=dice[UP];
22+
dice[UP]=dice[WEST];
23+
dice[WEST]=dice[DOWN];
24+
dice[DOWN]=temp;
25+
}
26+
else if(op==1){//서
27+
//서->아래
28+
//아래->동
29+
//동->위
30+
//위->서
31+
temp=dice[WEST];
32+
dice[WEST]=dice[UP];
33+
dice[UP]=dice[EAST];
34+
dice[EAST]=dice[DOWN];
35+
dice[DOWN]=temp;
36+
}
37+
else if(op==2){//북
38+
//북->아래
39+
//아래->남
40+
//남->위
41+
//위->북
42+
temp=dice[NORTH];
43+
dice[NORTH]=dice[UP];
44+
dice[UP]=dice[SOUTH];
45+
dice[SOUTH]=dice[DOWN];
46+
dice[DOWN]=temp;
47+
}
48+
else{//남
49+
//남->아래
50+
//아래->북
51+
//북->위
52+
//위->남
53+
temp=dice[SOUTH];
54+
dice[SOUTH]=dice[UP];
55+
dice[UP]=dice[NORTH];
56+
dice[NORTH]=dice[DOWN];
57+
dice[DOWN]=temp;
58+
}
59+
}
60+
public static void main(String[] args){
61+
Scanner sc=new Scanner(System.in);
62+
63+
n=sc.nextInt();
64+
m=sc.nextInt();
65+
x=sc.nextInt();
66+
y=sc.nextInt();
67+
k=sc.nextInt();
68+
69+
maze=new int[n][m];
70+
71+
for(int i=0;i<n;i++){
72+
for(int j=0;j<m;j++){
73+
maze[i][j]=sc.nextInt();
74+
}
75+
}
76+
77+
for(int i=0;i<k;i++){
78+
int op=sc.nextInt();
79+
op--;
80+
int nx=x+mx[op];
81+
int ny=y+my[op];
82+
83+
if(!isIn(nx,ny)) continue;
84+
85+
if(op==0){//동
86+
if(maze[nx][ny]!=0) {
87+
dice[EAST]=maze[nx][ny];
88+
maze[nx][ny]=0;
89+
}
90+
else maze[nx][ny]=dice[EAST];
91+
}
92+
else if(op==1){//서
93+
if(maze[nx][ny]!=0){
94+
dice[WEST]=maze[nx][ny];
95+
maze[nx][ny]=0;
96+
}
97+
else maze[nx][ny]=dice[WEST];
98+
}
99+
else if(op==2){//북
100+
if(maze[nx][ny]!=0) {
101+
dice[NORTH]=maze[nx][ny];
102+
maze[nx][ny]=0;
103+
}
104+
else maze[nx][ny]=dice[NORTH];
105+
}
106+
else{//남
107+
if(maze[nx][ny]!=0){
108+
109+
dice[SOUTH]=maze[nx][ny];
110+
maze[nx][ny]=0;
111+
}
112+
else maze[nx][ny]=dice[SOUTH];
113+
}
114+
moveDice(op);
115+
x=nx;
116+
y=ny;
117+
System.out.println(dice[UP]);
118+
}
119+
}
120+
}

0 commit comments

Comments
 (0)