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 | 29 | 30 |
Tags
- 은행원알고리즘
- 프로그래머스
- Git
- 컴파일 타임 상수
- @SubscribeMapping
- 파이썬
- 오블완
- 쉘 스크립트
- API
- compgen
- 커밋 되돌리기
- BindingResult
- 알고리즘
- 런타임 상수
- 백준
- spring
- m:n
- 무한정 대기
- @Autowired
- JPA
- 티스토리챌린지
- 편향된 지수
- 리눅스
- DTO
- allocationSize
- 기본키 전략
- intelij spring config
- JDBC
- 쿠키
- application layer
Archives
- Today
- Total
둘셋 개발!
[알고리즘] 주사위 굴리기 - 구현 본문
✏️ 문제:
https://www.acmicpc.net/problem/14499
✏️ 풀이:
- 주사위가 동, 서, 남, 북 으로 이동할 때, 각 방향마다 주사위의 각 면의 위치가 어떻게 바뀌는지는 고정이므로 배열에 어떤 위치가 어떻게 변하는지 미리 설정해놓는다. 예를 들어 주사위가 동쪽으로 이동하면, 항상 주사위 윗 면은 주사위의 오른쪽 면, 주사위의 아래면은 주사위의 왼쪽면, 주사위의 앞면은 그대로 주사위 앞면이 된다. 이처럼 방향마다 바뀌는 주사위 각 면의 위치의 값을 미리 설정한다.
✏️ 놓친 부분:
파이썬의 문법을 놓쳤다.
arr1=[0,1,2,3]
arr2 = arr1
이렇게 하면 arr1과 arr2가 가리키는 배열의 시작 위치가 같다.
따라서 arr1.append(4)를 하게 되면
arr2 = [0,1,2,3,4]로 된다.
나는 같은 시작위치를 가리키는 것이 아니라 다른 배열이 생성되는 줄 알고 있었다.
✏️ 코드:
dice=[0,0,0,0,0,0] # 주사위
dm = [[2,3,1,0,4,5],[3,2,0,1,4,5],[5,4,2,3,0,1],[4,5,2,3,1,0]] # direction Method
n ,m ,x, y, k= map(int,input().split()) # 지도세로, 가로, 현재위치 x, y, 명령의 갯수
road=[[0]*m for _ in range(n)] # 지도 초기화
for i in range(n): # 지도의 각 칸 입력
road[i] = list(map(int,input().split()))
order = list(map(int,input().split())) # 방향 명령
dx = [0,0,-1,1] # 동서북남
dy = [1,-1,0,0] # 동서북남
for i in range(k):
order_direct = order[i]-1 # 0~3
nx = x + dx[order_direct]
ny = y + dy[order_direct]
# 지도를 벗어나는지 확인
if nx<0 or nx>=n or ny<0 or ny>=m:
continue
x = nx
y = ny
dice_copy = dice[:] #원본 copy
for i in range(6): # 굴림
num = dm[order_direct][i]
dice[i] = dice_copy[num]
# 지도에 있는 숫자 밑면을 copy
if road[x][y]==0:
road[x][y] = dice[1]
else:
dice[1] = road[x][y]
road[x][y]=0
print(dice[0])
'알고리즘' 카테고리의 다른 글
[알고리즘]맥주 마시면서 걸어가기/python (BFS) (1) | 2022.12.01 |
---|---|
[알고리즘] 게임 맵 최단거리 - bfs/dfs (0) | 2022.08.14 |
[알고리즘] 가사검색 - 이진탐색 (0) | 2022.06.22 |
[알고리즘] 백준 공유기 설치 - 이진탐색 (0) | 2022.06.18 |
[알고리즘] 프로그래머스 메뉴 리뉴얼 (0) | 2022.06.08 |