백준_주사위 굴리기[Java]_도움요청
2019. 4. 7. 23:23ㆍ알고리즘문제/백준
문제
https://www.acmicpc.net/problem/14499
풀이
뭔가 이상하다.
시뮬레이션 문제라고 해서 그대로 풀었는데 테스트 케이스도 잘 맞는데
자꾸 틀렸습니다 로만 채점된다.
이유 아시는 분 ! 댓글 남겨주세요 ㅜㅜ
import java.util.Scanner;
public class Main {
static int N, M, x, y, K;
static int[][] map;
static int[] order;
static int[] dice = {0,0,0,0,0,0,0};
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
N = scan.nextInt(); // 지도 세로 크기
M = scan.nextInt(); // 지도 가로 크기
x = scan.nextInt(); // 좌표
y = scan.nextInt();
K = scan.nextInt(); // 명령의 갯수
map = new int[20][20];
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
map[i][j] = scan.nextInt();
}
}
// 동쪽은 1, 서쪽은 2, 북쪽은 3, 남쪽은 4
for(int i = 0; i < K; i++) {
int order = scan.nextInt();
if(order == 1) {
x++;
} else if(order == 2) {
x--;
} else if(order == 3) {
y--;
} else {
y++;
}
if(x >= M || y >= N || x < 0 | y < 0) {
// N과 M보다 크거나 같으면 락
if(order == 1) {
x--;
} else if(order == 2) {
x++;
} else if(order == 3) {
y++;
} else {
y--;
}
} else {
// 동쪽은 1, 서쪽은 2, 북쪽은 3, 남쪽은 4
int[] temp = dice.clone();
if(order == 1) {
dice[1] = temp[4];
dice[3] = temp[1];
dice[6] = temp[3];
dice[4] = temp[6];
} else if(order == 2) {
dice[1] = temp[3];
dice[3] = temp[6];
dice[6] = temp[4];
dice[4] = temp[1];
} else if(order == 3) { // 북쪽
dice[1] = temp[5];
dice[5] = temp[6];
dice[6] = temp[2];
dice[2] = temp[1];
} else {
dice[1] = temp[2];
dice[5] = temp[1];
dice[6] = temp[5];
dice[2] = temp[6];
}
//System.out.println("x : " + x + " / y : " + y);
if(map[y][x] == 0) {
map[y][x] = dice[6];
}else {
dice[6] = map[y][x];
map[y][x] = 0;
}
System.out.println(dice[1]);
}
}
scan.close();
}
}
* 참고로 나는 장외로 주사위가 굴러떨어지는 경우를 미리 계산해 떨어졌을 경우 다시 원상복귀 시키는 방법으로 구현하였는데
다른 많은 분들은 x,y를 담은 배열을 선언할 때 미래의 값과 현재의 값 총 4개의 값을 저장하는 배열을 선언하는 방식으로 구현하였다.
int[] = {oldX, oldY, newX, newY};
이런 식으로 하면 newX나 newY를 이용해 주사위가 지도 밖으로 떨어지는지 확인하더라 !
참고
- 자바로 친절하게 푸신 분 !
https://mygumi.tistory.com/244
'알고리즘문제 > 백준' 카테고리의 다른 글
백준_시험감독[Java]_도움요청 (0) | 2019.04.10 |
---|---|
백준_구슬 탈출2[Java]_도움요청 (0) | 2019.04.09 |
백준_계란으로 계란치기[Java] (0) | 2019.04.03 |
백준_인싸들의 가위바위보[Java] (0) | 2019.04.03 |
백준_Count Circle Groups_그래프_10216(Java) (0) | 2019.03.22 |