이번 문제는 BFS를 통해 해결하였다. 우선 수의 범위가 10억이기 때문에 set()을 통해 방문처리를 하였고, -연산은 무조건 0이 나오기 때문에 따로 처리하지 않았다(s와 t의 범위는 1부터 시작이기 때문에 0을 요구하는 경우는 없다). 아스키코드 오름차순으로 가장 빠른것을 출력해야 하기 때문에 BFS 탐색 내에서 반드시 *, +, / 순으로 진행하도록 하였다. 그리고 t와 같아지면 바로 그동안 저장한 연산자들을 반환하였다.
from collections import deque
s, t = map(int, input().split())
def four_operations():
q = deque()
q.append((s, []))
visited = set()
visited.add(s)
while q:
cur, opers = q.popleft()
if cur == t:
return ''.join(opers)
nxt = cur*cur
if 0 <= nxt <= 10e9 and nxt not in visited:
visited.add(nxt)
q.append((nxt, opers+['*']))
nxt = cur+cur
if 0 <= nxt <= 10e9 and nxt not in visited:
visited.add(nxt)
q.append((nxt, opers+['+']))
if cur != 0:
nxt = cur//cur
if nxt not in visited:
visited.add(nxt)
q.append((nxt, opers+['/']))
return -1
answer = four_operations()
if not answer:
answer = 0
print(answer)