티스토리 뷰

문제

 

https://www.acmicpc.net/problem/14499

 

14499번: 주사위 굴리기

첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지

www.acmicpc.net

 

 

풀이

 

그대로 구현만 하면 되는 문제였음.

 

dice라는 배열을 이용했는데, [위, 앞, 오, 왼, 뒤, 아]라고 정하고 풀었음.

 

rollDice라는 메서드를 이용해 dice배열의 순서를 바꿔주었음. 이때, 파라미터로 x와 y도 같이 받아서 범위를 벗어나면 건너뛰게 하였음.

check라는 변수를 이용하여 이때 값을 True로 바꾸어 커맨드를 건너뛸 수 있게했음.

 

윗면이 0번째 인덱스이므로 dice[0]을 매번 출력해주었음.

import sys
input = sys.stdin.readline
n,m,x,y,k = map(int,input().split())
board = []
for _ in range(n):
    board.append(list(map(int,input().split())))
dice = [0 for _ in range(6)]
def rollDice(dir,cur):
    global dice, x, y, check
    if dir == 1:
        if y + 1 == m:
            check = True
            return
        y += 1
        dice = [cur[3],cur[1],cur[0],cur[5],cur[4],cur[2]]
    elif dir == 2:
        if y == 0:
            check = True
            return
        y -= 1
        dice = [cur[2], cur[1], cur[5], cur[0], cur[4], cur[3]]
    elif dir == 3:
        if x == 0:
            check = True
            return
        x -= 1
        dice = [cur[4], cur[0], cur[2], cur[3], cur[5], cur[1]]
    else:
        if x + 1 == n:
            check = True
            return
        x += 1
        dice = [cur[1], cur[5], cur[2], cur[3], cur[0], cur[4]]

def changeNum(x,y):
    global board, dice

    if board[x][y] == 0:
        board[x][y] = dice[5]
    else:
        dice[5] = board[x][y]
        board[x][y] = 0
changeNum(x,y)
command = list(map(int,input().split()))
for i in range(len(command)):
    check = False
    rollDice(command[i],dice)
    if check:
        continue
    else:
        changeNum(x,y)
        print(dice[0])

 

처음에는 rollDice 메서드에서 dice의 값을 각각 넣어줬었음.

dice[0] = cur[2]; dice[1] = cur[1]...이런식으로 적어줬음.

 

근데 이렇게 하니까 파라미터로 받은 cur의 값이 dice의 값이 바뀌니까 같이 바뀌는거임. swift처럼 상수취급 되는게 아닌듯함.

_____________________________________________________________________________________________________

 

골드5가 더 어려운느낌

댓글
최근에 올라온 글
Total
Today
Yesterday