728x90
https://www.acmicpc.net/problem/14499
💡 문제 풀이
기본적인 구현 문제이다.
요구사항에 맞게만 구현하면 된다.
✔️ 느낀 점
최적의 코드를 짜고 싶었다. 하지만 알고리즘은 시간과의 싸움 아닐까..? 그냥 구현하는 게 맞는지 잘 모르겠단 고민이 들었다.
💻 코드
import sys ; input = sys.stdin.readline
UP, DOWN, LEFT, RIGHT = 3, 4, 2, 1
direction = {
DOWN: (1,0),
UP: (-1,0),
LEFT: (0,-1),
RIGHT: (0,1)
}
def turnDice(move):
global dice
if move == UP:
tmp = dice[2]
dice[2] = dice[1]
dice[1] = dice[5]
dice[5] = dice[6]
dice[6] = tmp
elif move == DOWN:
tmp = dice[2]
dice[2] = dice[6]
dice[6] = dice[5]
dice[5] = dice[1]
dice[1] = tmp
elif move == LEFT:
tmp = dice[4]
dice[4] = dice[1]
dice[1] = dice[3]
dice[3] = dice[6]
dice[6] = tmp
else:
tmp = dice[3]
dice[3] = dice[1]
dice[1] = dice[4]
dice[4] = dice[6]
dice[6] = tmp
def changeDice(board):
global dice
if board[nx][ny] == 0:
board[nx][ny] = dice[6]
else:
dice[6] = board[nx][ny]
board[nx][ny] = 0
n, m, x, y, k = map(int, input().split())
board = [list(map(int, input().split())) for _ in range(n)]
moves = list(map(int, input().split()))
dice = {i : 0 for i in range(1,7)}
for move in moves:
nx = x + direction[move][0]
ny = y + direction[move][1]
if 0 > nx or n <= nx or 0 > ny or m <= ny: continue
turnDice(move)
changeDice(board)
x = nx ; y = ny
print(dice[1])
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[Python] 백준 16234번 : 인구 이동 (0) | 2023.03.06 |
---|---|
[Python] 백준 1005번 : ACM Craft (0) | 2023.03.03 |
[Python] 백준 25341번 : 인공 신경망 (0) | 2023.03.01 |
[Python] 백준 15686번 : 치킨 배달 (0) | 2023.02.27 |
[Python] 백준 1520번 : 내리막 길 (0) | 2023.02.26 |
댓글