문제

풀이과정
A->B
A에서 B로 정방형으로 갈 경우, 1. 2를 곱하거나 2. 마지막에 1을 붙이는 방법 두가지이다.
B->A
B에서 A로 반대로 갈 경우, 1. 짝수인 경우 나누기 2, 2. 마지막에 1이 있을 경우 없애주기 이다.
그렇게 때문에 역방향이 경우의 수가 더 적기 때문에 역방향으로 생각하는 것이 더 좋다.
✅ 정답 풀이
import sys
input = sys.stdin.readline
A, B = map(int, input().split())
count = 1
while A < B:
count += 1
if B % 10 == 1: # 마지막이 1이라면
B = B//10 # 몫을 구해주기
elif B % 2 == 0: # B가 짝수라면
B = B//2
else:
break
if A == B:
print(count)
else:
print(-1)
'CodingTest' 카테고리의 다른 글
| [BOJ / Python] 1260 DFS와 BFS (0) | 2025.03.26 |
|---|---|
| [PROGRAMERS / SQL] 노선별 평균 역 사이 거리 조회하기 (0) | 2025.03.26 |
| 코딩테스트 with Python 주요 문법 정리 (0) | 2025.03.25 |
| [PROGRAMERS / JavaScript] 더 맵게 (0) | 2025.02.19 |
| [PROGRAMERS / JavaScript] 베스트앨범 (1) | 2025.02.12 |