- 계산 방법을 이용해서 접근했다. A에서 K로 가는 방식은 매우 복잡하기 때문에 K에서 A로 가는 역방향 접근 방식을 선택했다.
- 문제에서 주어진 연산 방식을 역방향 연산 방식을 적용하면 다음과 같이 바꿀 수 있다.
①. 연산1 : 정수 A에 1을 더한다. → 정수 K에서 1을 뺀다.
②. 연산2 : 정수 A에 2를 곱한다. → 정수 K를 2로 나눈다.
입력
7 77
출력
7
입력
5 10
출력
1
K ≥ A×2
이어야 하는지는 잘 모르겠다.import sys
A, K = map(int, sys.stdin.readline().strip().split())
cnt = 0
while True:
if A == K:
break
if K % 2 == 0 and K >= A*2:
K //= 2
cnt += 1
else:
K -= 1
cnt += 1
print(cnt)