[파이썬]백준 16953 A -> B

Byeonghyeon Kim·2021년 3월 27일
0

알고리즘문제

목록 보기
45/93
post-thumbnail

링크

백준 16953 A -> B


2를 곱하거나
오른쪽에 1을 추가하는 ( *10 + 1) 모든 경우의 수를 만들었다.
재귀를 통해 트리를 만들어서 완전탐색을 했다.
모든 경우의 수를 돌다가 계산한 숫자가 계산해야할 숫자보다 큰 경우 해당 트리에선 탐색을 멈췄다.


정답 코드

def cal(a, b, cnt):
    global ans
    if a > b:
        return
    if a == b:
        ans = cnt + 1
        return
    else:
        cal(a * 2, b, cnt + 1)
        cal((a * 10) + 1, b, cnt + 1)


A, B = map(int, input().split())
ans = -1
cal(A, B, 0)
print(ans)

알게된 것👨‍💻

  • 재귀재귀재귀재귀
profile
자기 주도 개발전 (개발, 발전)

0개의 댓글