emluy 개발 일기

C++ - (백준) 14499번 주사위 굴리기 본문

알고리즘/c, c++

C++ - (백준) 14499번 주사위 굴리기

yulme 2020. 10. 10. 02:22
SMALL

0. 문제

www.acmicpc.net/problem/14499

 

14499번: 주사위 굴리기

첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도

www.acmicpc.net

 

1. idea

//주사위 로직
//남,북으로 움직일때는 주사위 양옆은 바뀌지 않는다.
//동, 서로 움직일때는 주사위 앞뒤는 바뀌지 않는다.
//각 면의 숫자를 저장하는 배열을 하나 만든다.
//동, 서, 남, 북 각 방향으로 움직일 때 어떻게 배열의 숫자가 바뀌어야하는지 각 방향마다 로직을 만든다. 

2. 구현 

1) 각 방향으로 움직일 때 전개도 변화-> 함수로 표현

 

//바뀌기 전 전개도 [배열 인덱스로 표현] - 0:뒤 1:위 2:앞 3:밑 4:왼5:오


 0                   뒤
415            왼위오
 2                   앞
 3                   밑

 이동 후 전개도
-남
 3
405
 1
 2

 

-북 

 1 
425 
 3 
 0 

 

-서(앞,뒤 빼고 변함) 뒤:0 위:5 앞:2 밑:4 왼:1 오:3

 0 
153 
 2 
 4

 

-동 뒤:0 위:4 앞:2 밑:5 왼:3 오:1

 0 
341 
 2 
 5 

 

 

 

반응형
Comments