[백준] DSLR

6358 단어 pythonpython

이 문제가 왜 골드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))

파이썬 짱!

좋은 웹페이지 즐겨찾기