https://www.acmicpc.net/problem/14499
이번 문제 역시 구현이.. 중요한 문제였습니다.
사실상 다이스가 어떻게 굴러가는지를 종이에다가 다 풀어서 동,서,남,북의 경우를 찾으니 나머지 구현은 쉬웠던 문제입니다.
n,m, x,y,k = map(int,input().split())
arr = []
for i in range(n):
arr.append(list(map(int,input().split())))
move = list(map(int,input().split()))
num = [0,0,0,0,0,0,0]
d = 1
dx, dy = [0,0,0,-1,1], [0,1,-1,0,0]
def moving(n, arr): # 주사위 변화
if n == 1: # 동
return [0, arr[3], arr[2], arr[6], arr[1], arr[5], arr[4]]
elif n == 2: # 서
return [0, arr[4], arr[2], arr[1], arr[6], arr[5], arr[3]]
elif n == 3: # 북
return [0, arr[2], arr[6], arr[3], arr[4], arr[1], arr[5]]
elif n == 4: # 남
return [0, arr[5], arr[1], arr[3], arr[4], arr[6], arr[2]]
for i in range(k):
if 0 <= x+dx[move[i]] <= n-1 and 0 <= y+dy[move[i]] <= m-1:
x += dx[move[i]]
y += dy[move[i]]
num = moving(move[i], num)
if arr[x][y] == 0:
arr[x][y] = num[6]
else:
num[6] = arr[x][y]
arr[x][y] = 0
print(num[1])
'알고리즘' 카테고리의 다른 글
[백준] 11399번: ATM (0) | 2022.10.18 |
---|---|
[Python] 다양한 문자열 입력 방법 (0) | 2022.05.03 |
[백준] 3190번: 뱀 (0) | 2022.04.30 |
[백준] 13460: 구슬 탈출 2 (0) | 2022.04.29 |
[백준] 5014번: 스타트링크 (0) | 2022.03.22 |