문제 : https://www.acmicpc.net/problem/14562
초기 구상단계
풀이
def dfs(step, S, T):
global mini
if S == T:
if step <= mini:
mini = step
return
else:
for i in range(2):
if i == 0:
S += S
T += 3
else:
S += 1
dfs(step + 1, S, T)
최종 코드
def dfs(step, S, T):
global mini
if S == T:
if step <= mini:
mini = step
return
elif S > T:
return
else:
for i in range(2):
if i == 0:
S += S
T += 3
dfs(step + 1, S, T)
S -= S >> 1
T -= 3
else:
S += 1
dfs(step + 1, S, T)
S -= 1
for tc in range(int(input())):
S, T = map(int, input().split())
mini = 1000
dfs(0, S, T)
print(mini)