Skip to content

Commit 7ed4286

Browse files
committed
solve(BOJ): G4_14499_주사위 굴리기_py
1 parent 5fb2f76 commit 7ed4286

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# https://www.acmicpc.net/problem/14499
2+
# 4:27~6:00, 7:54~
3+
from collections import deque
4+
5+
6+
def main():
7+
n, m, x, y, k = map(int, input().split())
8+
9+
maps = [list(map(int, input().split())) for _ in range(n)]
10+
hor = deque([0, 0, 0, 0])
11+
ver = deque([0, 0, 0, 0])
12+
if maps[x][y] != 0:
13+
hor[0] = maps[x][y]
14+
ver[3] = hor[0]
15+
maps[x][y] = 0
16+
17+
moves = map(int, input().split())
18+
19+
pos = [x, y]
20+
for m in moves:
21+
move(pos, hor, ver, m, maps)
22+
23+
24+
off = (0, (0, 1), (0, -1), (-1, 0), (1, 0))
25+
26+
27+
def move(pos, hor, ver, move, maps):
28+
dx, dy = off[move]
29+
x, y = pos
30+
if not (0 <= x + dx < len(maps) and 0 <= y + dy < len(maps[0])):
31+
return
32+
if move == 1 or move == 2:
33+
if move == 1:
34+
hor.appendleft(hor.pop())
35+
if move == 2:
36+
hor.append(hor.popleft())
37+
ver[1] = hor[2]
38+
ver.pop()
39+
ver.append(hor[0])
40+
elif move == 3 or move == 4:
41+
if move == 3:
42+
ver.append(ver.popleft())
43+
if move == 4:
44+
ver.appendleft(ver.pop())
45+
hor[2] = ver[1]
46+
hor.popleft()
47+
hor.appendleft(ver[3])
48+
49+
if maps[x + dx][y + dy] == 0 and hor[0] != 0:
50+
maps[x + dx][y + dy] = hor[0]
51+
elif maps[x + dx][y + dy] != 0:
52+
hor[0] = maps[x + dx][y + dy]
53+
ver[3] = hor[0]
54+
maps[x + dx][y + dy] = 0
55+
56+
pos[0] += dx
57+
pos[1] += dy
58+
print(hor[2])
59+
60+
61+
main()

0 commit comments

Comments
 (0)