[BOJ14499] 주사위 굴리기
Updated:
문제
- N*M인 지도위 주사위 (r, c)
- 주사위 전개도
2
1 3 4
5
6 - 주사위는 윗면이 1 동쪽 3 좌표는 (x, y) 처음에는 모든 면이 0
- 지도 각 칸에는 정수
- 이동한 칸에 쓰여있는 수가 0 : 주사위 바닥면 수가 칸에 복사
- 0 아닌 경우 : 칸의 수가 주사위 바닥에 복사, 칸 수는 0으로
- 주사위 좌표, 이동 명령 주어졌을 때, 이동시 주사위 윗면 값 구하기
- 지도 밖의 경우에는 명령 무시, 출력 x
입력
- 첫 째줄, 지도의 세로 가로 N, M (1<= <=20) 주사위 좌표 x, y (0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 명령 개수 K (1<= <= 1000)
- 둘째 줄부터 N개 줄에 지도위의 값 (0<= <=10)
- 주사위를 처음 놓을 칸은 항상 0
- 마지막 줄에 이동하는 명령이 순서대로 (동 1, 서 2, 북 3, 남 4)
출력
- 이동할 때마다 주사위 윗 면에 쓰인 수 출력
- 지도 밖 이동시, 명령 및 출력 무시
설계
- 문제 그대로 설계/구현하면 되는데, 한 가지 까다로웠던 점은 주사위 굴리기
- 주사위 전개도를 보고, 각 면에 인덱스를 부여해서, 계속 그 인덱스를 트랙킹하려고 했는데, 너무 헷갈렸음…
- 주사위가 굴려져도 전개도 그대로 윗 면을 인덱스 1로 두고, 그전의 값을 temp로 두어 굴려져서 변경 시키는 값만 update하면 되었음
How I solved(click to github)
ref :
BOJ14499
Leave a comment