jss   5년 전

제 부족한 지식으로 미처 답을 찾지 못해서 도움을 청합니다. 전개도로 생각했을때

  0                    순으로 주사위를 dice[6] 배열에 넣었으며

1 2 3

   4

   5

우측으로 이동시 이런 모양이 됩니다

  0

5 1 2

   4

   3                   즉, 1 -> 2 -> 3 -> 5 -> 1 로 rotate right 하는 식으로 했습니다.

왼쪽 이동은            1 <-2 <- 3 <- 5 <- 1 으로 됩니다. 위 아래도 위 전개도를 사용하여

위 방향은

  2

1 4  3            과 같이 바뀝니다. 0,2,4,5가 rotate left 했습니다. 

   5               아래 방향 이동은 반대로 0,2,4,5를 rotate right 했습니다.

   0

위와 같이 구현을 하였고 입력받은 방향 변환 횟수 k에 맞게

while(k>0)으로 반복하는 방식으로 했습니다. 딱히 특별한 코드는 없다고 생각되는데 반례조차 찾지못해서 도움을 부탁드립니다..

초기 주사위 전개도에서 0~5는 dice의 인덱스 번호를 의미합니다. 따라서 dice[2]가 항상 위쪽이며 dice[5]가 아래쪽입니다.

조언 부탁드리겠습니다!

jss   5년 전

doju님의 도움으로 해결했습니다.

제가 겪은 문제는 입력받은 x,y좌표를 사용하지 않아서 생긴 문제였습니다.

문제에 주사위가 놓여진 곳은 항상 0이라는 말을 보고 

예제를 보았을때 map이 0인 곳이 하나밖에 없어서

나머지 경우에서도 map이 0이면 반드시 주사위가 있으리라고 착각했습니다.

  1. 주사위가 놓인 곳은 0이다. (o)
  2. 0이면 주사위가 놓여있다. (x)

위 문제 때문에 생긴 오류였습니다. 수정하니까 바로 되네요. 감사합니다.

댓글을 작성하려면 로그인해야 합니다.