๋ฐฑ์ค 16953๋ฒ
https://www.acmicpc.net/problem/16953
๋ฌธ์
ํ๊ธฐ
2๋ฅผ ๊ณฑํ๋ ์ฐ์ฐ๊ณผ, 1์ ์ค๋ฅธ์ชฝ์ ์ถ๊ฐํ๋ ์ฐ์ฐ์ def()๋ก ๋ง๋ค์ด์
๋ชจ๋ ํ๋ฒ ์ฉ ํด๋ณด๋ฉด ๋์ง ์์๊น? ๋ผ๋ ์ด์ฒ๊ตฌ๋ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ ์ฌ๋ ธ๊ณ
๊ตฌํ ์ค ์ด๊ฑด ์ ๋ ์ ๋ต์ผ ๋ฆฌ ์๋ค๋ ์๊ฐ์ ํ๊ณ ์ฒ์์ผ๋ก ๋์์๋ค.
์์ ์ ๋ ฅ 1์์
2->4->8->81->162 ๊ฐ ๋๋ ๊ฒ์ ๋ณด๊ณ ๊ฑฐ๊พธ๋ก ์๊ฐํด๋ณด๋
162->81->8->4->2 ์ด๋ ๊ฒ ๋๋ ๊ฒ์ด์๋ค.
์ด์ฐจํผ ์์์ ๋ค๋ก ์ฐ์ฐํ๋ ๋ค์์ ์์ผ๋ก ์ฐ์ฐํ๋ ์ฐ์ฐ ํ์๋ ๋์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ์๊ธฐ ๋ฌธ์ ๊ฐ ์ฌ์์ ธ ๋ฒ๋ ธ๋ค.
๋ง์ฝ 2๋ก ๋๋์ด ๋จ์ด์ง๋ฉด 2๋ก ๋๋๊ณ , 2๋ก ๋๋์ด ๋จ์ด์ง์ง ์์์๋
10์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ 1์ด๋ฉด, 10์ผ๋ก ๋๋ ๋ชซ์ ์ ์ฅํ๋ค.
์ด ๋๊ฐ์ง ์ฐ์ฐ ๋ชจ๋ ํ ์ ์๋ค๋ฉด, -1์ ์ถ๋ ฅํ๋ค.
๋์ ํ์ด
import sys
input = sys.stdin.readline
A,B= map(int,input().split())
result = 1 #๋ฌธ์ ์์ ์ต์ข
๊ฒฐ๊ณผ์์ 1์ ๋ํ์ฌ ์ถ๋ ฅํ๋ผ๊ณ ํ์ผ๋ฏ๋ก
while B!=A: # ์ํ๋ ๊ฐ์ด ๋ ๋๊น์ง ์ฐ์ฐํ๋ค.
result +=1
answer= B
if B%10 == 1: #21, 101 ๋ฑ 10์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ 1์ด๋ฉด
B//=10 # ๋ค์ 1์ ๋ถ์ด๋ ์ฐ์ฐ์ ํ ์ ์๋ค๋ ๋ป
elif B%2 ==0: #2๋ก ๋๋ ๋๋จธ์ง๊ฐ 0์ด๋ฉด
B//=2 #2๋ก ๋๋๋ ์ฐ์ฐ์ ํ ์ ์๋ค๋ ๋ป
if answer == B: #๋ง์ฝ ์์ ์ด๋ ํ ์ฐ์ฐ๋ ํ ์ ์๋ค๋ฉด
print(-1) #-1 ์ถ๋ ฅํ๊ณ ์ข
๋ฃ
exit()
print(result)