[BOJ, 백준] 14499 주사위 굴리기 Python
2024. 4. 8. 00:41ㆍAlgorithm
삼성 출제 문제였다고한다.
아무래도 직접 주사위를 굴렸다면 훨씬 이해가 빨랐을 수도 있을 것 같다 !
N,M,x,y,K = map(int,input().split())
#N,M은 지도의 사이즈, (x,y)는 좌표, K는 명령의 갯수
plane = []
for _ in range (0,N):
t = list(map(int,input().split()))
plane.append(t)
#plane을 통해서 각 좌표에 무엇이 쓰여있는지 알 수 있다
cube = [0,0,0,0,0,0,0]
#바닥 - 북 - 동 - 남 - 서 - 천장
coordinate = [x,y]
ans = []
movement = list(map(int,input().split()))
for i in range (0,K):
n = movement[i]
if n == 1:
#동쪽으로 이동
if 0 <= coordinate[1] + 1 < M:
coordinate[1] += 1
cube = [0,cube[3],cube[2],cube[6],cube[1],cube[5],cube[4]]
if plane[coordinate[0]][coordinate[1]] == 0:
plane[coordinate[0]][coordinate[1]] = cube[1]
else:
cube[1] = plane[coordinate[0]][coordinate[1]]
plane[coordinate[0]][coordinate[1]] = 0
ans.append(cube[-1])
else:
continue
elif n == 2:
#서쪽으로 이동
if 0 <= coordinate[1] - 1 < M:
coordinate[1] -= 1
cube = [0,cube[4],cube[2],cube[1],cube[6],cube[5],cube[3]]
if plane[coordinate[0]][coordinate[1]] == 0:
plane[coordinate[0]][coordinate[1]] = cube[1]
else:
cube[1] = plane[coordinate[0]][coordinate[1]]
plane[coordinate[0]][coordinate[1]] = 0
ans.append(cube[-1])
else:
continue
elif n == 4:
#남쪽으로 이동
if 0 <= coordinate[0] + 1 < N:
coordinate[0] += 1
cube = [0,cube[5],cube[1],cube[3],cube[4],cube[6],cube[2]]
if plane[coordinate[0]][coordinate[1]] == 0:
plane[coordinate[0]][coordinate[1]] = cube[1]
else:
cube[1] = plane[coordinate[0]][coordinate[1]]
plane[coordinate[0]][coordinate[1]] = 0
ans.append(cube[-1])
else:
continue
elif n == 3:
#북쪽으로 이동
if 0 <= coordinate[0] - 1 < N:
coordinate[0] -= 1
cube = [0,cube[2],cube[6],cube[3],cube[4],cube[1],cube[5]]
if plane[coordinate[0]][coordinate[1]] == 0:
plane[coordinate[0]][coordinate[1]] = cube[1]
else:
cube[1] = plane[coordinate[0]][coordinate[1]]
plane[coordinate[0]][coordinate[1]] = 0
ans.append(cube[-1])
else:
continue
for i in range (0,len(ans)):
print(ans[i])
하이고 힘들다 ...
'Algorithm' 카테고리의 다른 글
[BOJ] 백준 14888 연산자 끼워넣기 python (0) | 2024.04.09 |
---|---|
[BOJ] 16236 아기상어 python (0) | 2024.04.09 |
[BOJ] 백준 23848 등비수열의 합 python (0) | 2024.03.31 |
[BOJ] 9359 서로소 python (1) | 2024.03.31 |
[BOJ] 3964 팩토리얼과 거듭제곱 Python (0) | 2024.03.18 |