이 문제가 왜 골드5인지 모루겠당..
이것도 최단거리처럼 풀면 되는 문제인데 처음에 깊이 우선으로 하다가 이건 아니다 싶어서 너비 우선으로 바꾸었다.
from _collections import deque
T = int(input())
def solve(n, B):
queue = deque()
visited = [False] * 10000
queue.append([n, ''])
while queue:
k, sol = queue.popleft()
if k == B:
return sol
if not visited[k]:
visited[k] = True
queue.append([2 * k % 10000, sol + 'D'])
queue.append([(k - 1) % 10000, sol + 'S'])
queue.append([(k % 1000) * 10 + k // 1000, sol + 'L'])
queue.append([k // 10 + (k % 10) * 1000, sol + 'R'])
result = []
for _ in range(T):
A, B = map(int, input().split())
result.append(solve(A, B))
print('\n'.join(result))
파이썬 짱!