diff --git a/code_study/Baekjoon/python/9019.py b/code_study/Baekjoon/python/9019.py new file mode 100644 index 0000000..870ff0d --- /dev/null +++ b/code_study/Baekjoon/python/9019.py @@ -0,0 +1,42 @@ +import sys +from collections import deque + +input = sys.stdin.readline + +def convert_4length(s) : + return "000" + s if len(s) == 1 else "00" + s if len(s) == 2 else "0" + s if len(s) == 3 else s + +def DSLR(order,numString) : + if order == 'D' : + return convert_4length(str(int(numString)*2 % 10000)) + elif order == 'S' : + return convert_4length(str(int(numString) - 1 if int(numString) > 0 else 9999)) + elif order == 'L' : + return numString[1] + numString[2] + numString[3] + numString[0] + elif order == 'R' : + return numString[3] + numString[0] + numString[1] + numString[2] + +def BFS(a, b) : + a = convert_4length(a) + b = convert_4length(b) + visited = [False for _ in range(10000)] + q = deque() + q.append((a, "")) + + while len(q) : + currentValue, currentOrderStream = q.popleft() + + for o in "DSLR" : + nextValue = DSLR(o,currentValue) + nextOrderStream = currentOrderStream + o + + if nextValue == b : + return nextOrderStream + + if not visited[int(nextValue)] : + visited[int(nextValue)] = True + q.append((nextValue, nextOrderStream)) + +for _ in range(int(input())) : + A, B = input().split() + print(BFS(A, B)) \ No newline at end of file