[풀이]
a,b = map(int,input().split())
answer = 0
while a != b:
if b < a:
answer = -1
break
if b % 2 == 0 and b!=0:
b = int(b/2)
answer += 1
elif str(b)[-1] == '1':
b = str(b)[:-1]
b = int(b)
#이거를 그냥 b = int(b/10)으로 처리,,
answer += 1
else:
answer = -1
break
if answer != -1:
answer += 1
print(answer)
while문 안에서 분기 처리 해주는거에서 생각보다 내가 놓치는 부분이 많아서 실패를 여러번 했다. 만약에 b의 값이 a보다 작아지면 안되는거니까 break 처리를 해준다. 다음, b가 나눠지고 이때 0이되면 안되니까 그렇게 조건을 주면, 과정 +1을 해준다. 다음에, 만약 나눠지지는 않고 끝자리가 1이면 1을 때주는 단계를 반복해서 마지막에 출력해주면 된다
'너와!나의!알고!리즘! > 백준' 카테고리의 다른 글
[백준 #13706, Python] 제곱근 (0) | 2021.03.30 |
---|---|
[백준 #12907,Python] 동물원 (0) | 2021.03.30 |
[# 11399, Python ] ATM (0) | 2021.03.30 |
[백준 #3980, Python] 선발명단 (0) | 2021.03.24 |
[#20546, Python]기적의 매매법 🐎 (0) | 2021.03.18 |