백준 / 실버 2 / 16953 A -> B / Python [탐색]

jjin·2023년 10월 30일
0

프로그래머스 형식으로 풀기로 했다.

dfs

너무 dfs만 풀었나

import sys
input=sys.stdin.readline
sys.setrecursionlimit(10**6)

def solution(A, B):
    mincnt = 999999999
    def dfs(A, cnt):
        nonlocal mincnt
        if A > B:
            return
        if A == B:
            mincnt = min(mincnt, cnt)
            return
        dfs(A * 2, cnt + 1)
        dfs(A * 10 + 1, cnt + 1)
    dfs(A, 0)
    if mincnt == 999999999:
        return -1
    return mincnt + 1
    
    
A, B = map(int, input().split())

print(solution(A, B))
profile
진짜

0개의 댓글