ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
๋ฌธ์ ํ์ด
์ด๊ธฐ์ 6๋ฉด์ด 0์ ๊ฐ์ ๊ฐ์ง๋ ์ฃผ์ฌ์๋ฅผ ๋, ์, ๋ถ, ๋จ์ผ๋ก ์ง๋๋ฅผ ํ์ํ ๊ฒฝ์ฐ ํ์ฌ ์ขํ์ ์ง๋ ๊ฐ์ด 0์ด ์๋๋ฉด ์ฃผ์ฌ์ ๋ฐ๋ฅ์ ๊ฐ์ ๋ณต์ฌํ๊ณ , ํ์ฌ ์ขํ ์ง๋ ๊ฐ์ด 0์ธ ๊ฒฝ์ฐ ์ฃผ์ฌ์ ๋ฐ๋ฅ์ ์๋ฅผ ์ง๋์ ๋ณต์ฌํ๋ค. ์ด๋ ๋ช ๋ น์ ๋ฐ๋ผ ์ฃผ์ฌ์๋ฅผ ์์ง์ผ ๋, ์ฃผ์ฌ์ ์๋ฉด์ ๊ฐ์ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
์ฃผ์ฌ์๋ ๋, ์, ๋ถ, ๋จ ๊ฐ ๋ฐฉํฅ์ ๋ฐ๋ผ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ณํํ๋ค. ๋, ์์ธ ๊ฒฝ์ฐ์๋ ๊ธฐ์กด์ 4, 1, 3, 6๋ฒ์ด ์ค๋ฅธ์ชฝ์ผ๋ก ์ํํ๊ฑฐ๋ ์ผ์ชฝ์ผ๋ก ์ํํ๋ค. ์ด์ ๋ฌ๋ฆฌ ๋ถ, ๋จ์ธ ๊ฒฝ์ฐ 2, 1, 5, 6๋ฒ์ด ์๋ ์๋๋ก ์ํํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ์ด์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ฌ ์ฃผ์ฌ์๊ฐ ํด๋น ๋ฐฉํฅ์ผ๋ก ์ด๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ฃผ์ฌ์ ์ํ๋ฅผ ๋ณํ์ํค๋ฉด์ ํ์์ ์งํํ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ฝ๋
from sys import stdin
from collections import deque
def move_dice(direction):
if direction == E:
dice[3], dice[1], dice[4], dice[6] = dice[1], dice[4], dice[6], dice[3]
elif direction == W:
dice[3], dice[1], dice[4], dice[6] = dice[6], dice[3], dice[1], dice[4]
elif direction == N:
dice[2], dice[1], dice[5], dice[6] = dice[1], dice[5], dice[6], dice[2]
elif direction == S:
dice[2], dice[1], dice[5], dice[6] = dice[6], dice[2], dice[1], dice[5]
def bfs(start):
q = deque([start])
# ๋, ์, ๋ถ, ๋จ
dirs = [(), (0, 1), (0, -1), (-1, 0), (1, 0)]
for order in orders:
cur_x, cur_y = q.popleft()
dx, dy = dirs[order]
next_x, next_y = cur_x + dx, cur_y + dy
if 0 <= next_x < n and 0 <= next_y < m:
move_dice(order)
if graph[next_x][next_y]:
dice[6] = graph[next_x][next_y]
graph[next_x][next_y] = 0
else:
graph[next_x][next_y] = dice[6]
print(dice[1])
q.append((next_x, next_y))
else:
q.append((cur_x, cur_y))
if __name__ == '__main__':
E, W, N, S = 1, 2, 3, 4
n, m, x, y, k = map(int, stdin.readline().split())
graph = [list(map(int, stdin.readline().split())) for _ in range(n)]
orders = list(map(int, stdin.readline().split()))
# ์ฃผ์ฌ์์ ์ธ๋ฑ์ค๋ ๋ฌธ์ ์ ์ฃผ์ด์ง ๊ฒ๊ณผ ๋์ผ.
dice = [0] * 7
bfs([x, y])
์์ ์ ๋ ฅ ์ผ์ด์ค๋ง ๋ชจ๋ ์ ์ฒ๋ฆฌ ๋๋ค๋ฉด, ๋ต์์ ์ ์ถํ์์ ๋ ์ ๋ต์ด๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ๋ณผ ์ ์๋ค. ๋, ์, ๋จ, ๋ถ์ด ์๋๋ผ ๋, ์, ๋ถ, ๋จ์ด๋ผ์ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ํ๋ฒ ํท๊ฐ๋ ธ๋ค. ๋ํ, ์ฃผ์ฌ์๋ฅผ ๋, ์๋ก ์ฎ๊ธธ ๋ ๋ฐ๋ฅ๋ฉด๋ ํฌํจํด์ ์ํ๋๋ค๋ ๊ฒ์ ์ธ์งํ์ง ๋ชปํด ํ๋ฒ ๋ ํท๊ฐ๋ ธ๋ค.๐
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 15662 ํฑ๋๋ฐํด (2) (0) | 2020.09.23 |
---|---|
๋ฐฑ์ค: 14891 ํฑ๋๋ฐํด (0) | 2020.09.23 |
๋ฐฑ์ค: 14890 ๊ฒฝ์ฌ๋ก (0) | 2020.09.22 |
๋ฐฑ์ค: 3190 ๋ฑ (0) | 2020.09.21 |
๋ฐฑ์ค: 4811 ์์ฝ (0) | 2020.09.19 |