์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๋ฐฑ์ค€ ์‚ฌ์ดํŠธ ๋งํฌ

๋ฌธ์ œ

์ •์ˆ˜ 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)

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ