[๋ฐฑ์ค 16953๋ฒ] [๐ฅ2] A โ B (python)
๋ฌธ์
์ ์ A๋ฅผ B๋ก ๋ฐ๊พธ๋ ค๊ณ ํ๋ค. ๊ฐ๋ฅํ ์ฐ์ฐ์ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง์ด๋ค.
- 2๋ฅผ ๊ณฑํ๋ค.
- 1์ ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์ถ๊ฐํ๋ค.
A๋ฅผ B๋ก ๋ฐ๊พธ๋๋ฐ ํ์ํ ์ฐ์ฐ์ ์ต์๊ฐ์ ๊ตฌํด๋ณด์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ A, B (1 โค A < B โค 10^9)๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
A๋ฅผ B๋ก ๋ฐ๊พธ๋๋ฐ ํ์ํ ์ฐ์ฐ์ ์ต์๊ฐ์ 1์ ๋ํ ๊ฐ์ ์ถ๋ ฅํ๋ค. ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
2 162
์์ ์ถ๋ ฅ 1
5
2 โ 4 โ 8 โ 81 โ 162
์์ ์ ๋ ฅ 2
4 42
์์ ์ถ๋ ฅ 2
-1
์์ ์ ๋ ฅ 3
100 40021
์์ ์ถ๋ ฅ 3
5
100 โ 200 โ 2001 โ 4002 โ 40021
๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋งํ๋ ๋ถ๋ถ
bottom-up ๋์ top-down
์ผ๋ก ํธ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ค.
2๋ฅผ ๊ณฑํ๋ ์กฐ๊ฑด ๋ณด๋ค ๋ค์๊ฐ 1์ธ ์กฐ๊ฑด์ ์์ ๋ ๋ฐฉ๋ฒ์ ๋จผ์ ์์ฑํด์ผ ๋๋ค.
์ฝ๋
ver(1)
a, b = map(int,input().split())
result = 1
while(a!=b):
result += 1
temp = b
if b % 10 == 1:
b //= 10
elif b % 2 == 0:
b //= 2
if temp == b:
print(-1)
break
else:
print(result)
๋๊ธ๋จ๊ธฐ๊ธฐ