Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 증가하는부분수열
- 백준 1120
- 백준 10819
- 운영체제
- 코딩테스트
- 네이버
- 백준 파이썬
- 백준 2529
- 백준 14499
- CI/CD
- 자바스크립트
- 도커
- CS
- 9465 스티커
- 락
- 백트래킹
- docker
- 스레드
- 파이썬
- 다익스트라
- 프로그래머스
- 스프링
- 후위 표기식
- 백준
- 코테
- Spring Security
- 백준 2302
- 백준 15686
- 프로세스
- Spring
Archives
- Today
- Total
개발
[백준] 14499 주사위 굴리기 (파이썬) 본문
처음에는 deque을 이용해서 움직일때마다 rotate를 하니 마니 뻘짓을 하고 있었는데
간단하게 정면, 바닥면, 오른쪽면에 초기 값을 부여하고 행동을 할때마다 이 값들을 업데이트 하는 방식으로 구현했다.
실제 주사위도 바닥면과 밑면의 합이 일정하기 때문에 이를 이용하였다.
아이디어를 떠올리기 매우 힘들었다..
import sys
input = sys.stdin.readline
row, col, x, y, k = map(int,input().split())
board = [list(map(int,input().split())) for _ in range(row)]
dir = list(map(int,input().split()))
move = [(0,1),(0,-1),(-1,0),(1,0)]
dice = [0,0,0,0,0,0]
front = 2
down = 1
right = 5
for i in range(len(dir)):
(dx, dy) = move[dir[i]-1]
nx = x + dx
ny = y + dy
if 0 <= nx < row and 0 <= ny < col:
if board[nx][ny] != 0:
if dir[i] == 1:
down, right = right, abs(5-down)
dice[down] = board[nx][ny]
board[nx][ny] = 0
elif dir[i] == 2:
down, right = abs(5-right), down
dice[down] = board[nx][ny]
board[nx][ny] = 0
elif dir[i] == 3:
front, down = down, abs(5-front)
dice[down] = board[nx][ny]
board[nx][ny] = 0
elif dir[i] == 4:
front, down = abs(5-down) ,front
dice[down] = board[nx][ny]
board[nx][ny] = 0
elif board[nx][ny] == 0:
if dir[i] == 1:
down, right = right, abs(5-down)
board[nx][ny] = dice[down]
elif dir[i] == 2:
down, right = abs(5-right), down
board[nx][ny] = dice[down]
elif dir[i] == 3:
front, down = down, abs(5-front)
board[nx][ny] = dice[down]
elif dir[i] == 4:
front, down = abs(5-down) ,front
board[nx][ny] = dice[down]
x, y = nx, ny
print(dice[abs(5-down)])'알고리즘 > 문제' 카테고리의 다른 글
| [백준] 15686 치킨배달 (파이썬) (0) | 2022.08.08 |
|---|---|
| [백준] 2529 부등호 (파이썬) (0) | 2022.08.01 |
| [백준] 1120 문자열 (파이썬) (0) | 2022.07.29 |
| [백준] 2302 극장 좌석 (파이썬) (0) | 2022.07.20 |
| [백준] 9465 스티커 (파이썬) (0) | 2022.07.20 |