알고리즘/구현
파이썬 | 백준 | 14499 | 주사위 굴리기
cha-n
2020. 10. 28. 16:33
solution
# 14499, 주사위 굴리기
import sys
# 1:동 2:서 3:북 4:남
N, M, x, y, K = map(int, sys.stdin.readline().split())
coor = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
dir = list(map(int, sys.stdin.readline().split()))
dice = [0] * 7
for i in range(K):
# 동
if dir[i] == 1:
if y + 1 < M:
dice[4], dice[1], dice[3], dice[6] = dice[6], dice[4], dice[1], dice[3]
if coor[x][y + 1] == 0:
coor[x][y + 1] = dice[6]
else:
dice[6] = coor[x][y + 1]
coor[x][y + 1] = 0
y+=1
print(dice[1])
# 서
elif dir[i] == 2:
if y - 1 >= 0:
dice[4], dice[1], dice[3], dice[6] = dice[1], dice[3], dice[6], dice[4]
if coor[x][y - 1] == 0:
coor[x][y - 1] = dice[6]
else:
dice[6] = coor[x][y - 1]
coor[x][y - 1] = 0
y-=1
print(dice[1])
# 북
elif dir[i] == 3:
if x - 1 >= 0:
dice[2], dice[1], dice[5], dice[6] = dice[1], dice[5], dice[6], dice[2]
if coor[x - 1][y] == 0:
coor[x - 1][y] = dice[6]
else:
dice[6] = coor[x - 1][y]
coor[x - 1][y] = 0
x-=1
print(dice[1])
# 남
else:
if x + 1 < N:
dice[2], dice[1], dice[5], dice[6] = dice[6], dice[2], dice[1], dice[5]
if coor[x + 1][y] == 0:
coor[x + 1][y] = dice[6]
else:
dice[6] = coor[x + 1][y]
coor[x + 1][y] = 0
x+=1
print(dice[1])
문제 출처 www.acmicpc.net/problem/14499