예제 1,2,3은 잘찍히는데
왜 4에서 잘못나오는거지??
-----------수정 ------------------------------------------------------------------------
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();//지도행범위
int m = sc.nextInt();//지도열범위
int r = sc.nextInt();
int c = sc.nextInt();
int k = sc.nextInt();
int map[][]=new int[n][m];//지도값
int order[]=new int[k];//굴리는거
int square[]=new int[6];//주사위 6면
boolean flag = false;
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++ ) {
map[i][j]=sc.nextInt();
}
}
for(int i=0;i<k;i++) {
order[i]=sc.nextInt(); //1동 2서 3북 4남
}
for(int i=0;i<k;i++) {
if(order[i]==1) {
if(c+1>=m) {
continue;
}
int temp22=square[2];
if(map[r][c+1]==0) {
map[r][c+1]=temp22;
flag=true;
}
if(flag==false) {
square[2]=map[r][c+1];
map[r][c+1]=0;
}
c=c+1;
int temp0=square[0];
int temp2=square[2];
int temp3=square[3];
int temp5=square[5];
square[0]=temp3;
square[2]=temp0;
square[5]=temp2;
square[3]=temp5;
System.out.println(square[0]);
flag=false;
}
if(order[i]==2) {
if(c-1<0) {
continue;
}
int temp33=square[3];
if(map[r][c-1]==0) {
map[r][c-1]=temp33;
flag=true;
}
if(flag==false) {
square[3]=map[r][c-1];
map[r][c-1]=0;
}
c=c-1;
int temp0=square[0];
int temp3=square[3];
int temp5=square[5];
int temp2=square[2];
square[0]=temp2;
square[3]=temp0;
square[5]=temp3;
square[2]=temp5;
System.out.println(square[0]);
flag=false;
}
if(order[i]==3) {
if(r-1<0) {
continue;
}
int temp11 =square[1];
if(map[r-1][c]==0) {
map[r-1][c]=temp11;
flag=true;
}
if(flag==false) {
square[1]=map[r-1][c];
map[r-1][c]=0;
}
r=r-1;
int temp1 = square[1];
int temp5 = square[5];
int temp4 = square[4];
int temp0 = square[0];
square[1]=temp0;
square[5]=temp1;
square[4]=temp5;
square[0]=temp4;
System.out.println(square[0]);
flag=false;
}
if(order[i]==4) {
if(r+1>=n) {
continue;
}
int temp44 =square[4];
if(map[r+1][c]==0) {
map[r+1][c]=temp44;
flag=true;
}
if(flag==false) {
square[4]=map[r+1][c];
map[r+1][c]=0;
}
r=r+1;
int temp4 = square[4];
int temp5 = square[5];
int temp1 = square[1];
int temp0 = square[0];
square[4]=temp0;
square[5]=temp4;
square[1]=temp5;
square[0]=temp1;
System.out.println(square[0]);
flag=false;
}
}
}
}
예제 1,2,3은 잘찍히는데
왜 예제4에서 잘못나오는거지??
이거 나 개 잘풀었는데 히히
축하해요~
바닥이 0일때 처리가 없어서
아하 ㄳㄳ!!!!
0 처리해줫는데 왜 안될까요 미칠거같습니다......
맵에서 스퀘어로 들어가는건 else에 있어야지
복사한다음에 0되는것도 빠진거같은데
풀엇습니다 감사합니다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ