대충 생각한 방법이긴 하지만..

input n,m

direction =R
i,j = 0
c=1

n,m 배열 0초기화.

while(?)
switch(direction)
case R
i,j = c++; (i+1,j or i+1=n ? dir = D : i++)
case D
i,j = c++; (i,j+1 or j+1 =m ? dir = L : j++ )
case L
...
case U
...


아이디어는 단순함. 오른쪽으로 가다가 막히면 아래로, 아래로 가다가 막히면 왼쪽으로, 위로, 오른쪽,.... 이걸 반복하면서 지나가는것.
while문 탈출 코드는 좀 효율적인걸 생각해봐야겠지만, 어쨌든 이런식으로 풀릴듯..