ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 18004 From A to B with Python
    PS 2022. 5. 15. 02:03
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 18004 From A to B

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ๋‘ ๊ฐœ์˜ ์ •์ˆ˜์ธ a์™€ b๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.
    2. ์ผ๋ จ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์—ฌ a๋ฅผ b๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.
    3. ๋‹ค์Œ์˜ ๋‘๊ฐ€์ง€ ์ž‘์—…๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
      1. ์ง์ˆ˜์ธ ๊ฒฝ์šฐ์—๋งŒ 2๋กœ ๋‚˜๋ˆ„๊ธฐ.
      2. 1 ๋”ํ•˜๊ธฐ
    4. (1 ≤ a , b ≤ 10 9 )
    5. a ๋ฅผ b ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ฃผ์–ด์ง„ ์—ฐ์‚ฐ์˜ ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ
    6. ์ˆ˜ํ•™, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜, BFS ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from collections import deque
    from sys import stdin
    
    a, b = map(int, stdin.readline().split())
    
    
    def solve():
        q = deque()
        if a <= b:
            print(b - a)
            return
    
        q.append((0, a))
        while q:
            cost, now = q.popleft()
    
            if now == b:
                print(cost)
                return
    
            if now > b:
                if now % 2 == 0:
                    q.append((cost + 1, now // 2))
                else:
                    q.append((cost + 1, now + 1))
            else:
                print(cost + (b - now))
                return
    
    
    solve()

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    103 27

    ์‹คํ–‰๊ฒฐ๊ณผ

    4

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. a ์™€ b ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , a ๋ฅผ b๋กœ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ์ด๋‹ค.
    2. a์— ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋‘๊ฐ€์ง€ ์—ฐ์‚ฐ์„ ๊ฐ€์ง€๊ณ  b๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š”๋ฐ, ๋‚˜๋ˆ„๊ธฐ์™€ ๋”ํ•˜๊ธฐ 1์ด๋‹ค.
    3. ๋ฌธ์ œ์˜ ์ฒซ๋ฒˆ์งธ ์—ฐ์‚ฐ์€ a๋ฅผ ์ž‘๊ฒŒ ๋งŒ๋“œ๋Š” ์—ฐ์‚ฐ์ธ๋งŒํผ, a๊ฐ€ b๋ณด๋‹ค ์ž‘์œผ๋ฉด ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
    4. BFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด์„œ queue์— a๋ฅผ ์—ฐ์‚ฐํ•œ ๊ฐ’๊ณผ ์—ฐ์‚ฐํ•œ ํšŸ์ˆ˜๋ฅผ ๋„ฃ์–ด ๊ด€๋ฆฌํ•œ๋‹ค.
    5. (3)๋ฒˆ ์กฐ๊ฑด์— ์˜ํ•ด queue์—์„œ ๋ฝ‘์•„๋‚ธ ์—ฐ์‚ฐ๋œ a๊ฐ€ b๋ณด๋‹ค ์ž‘์•„์ง€๋ฉด ํ˜„์žฌ ์—ฐ์‚ฐํ•œ ํšŸ์ˆ˜์™€ (b - queue์—์„œ ๋ฝ‘์•„๋‚ธ ์—ฐ์‚ฐ๋œ a)๊ฐ’์„ ๋”ํ•ด ๋ฆฌํ„ดํ•œ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.