Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
    • ๐Ÿ’ปBackend (10)
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ํ† ์ต์ ์ˆ˜
  • ๊ทธ๋ฆฌ๋””
  • UNION ALL
  • greedy algorithm
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ํ† ์ตRC
  • ๋‚ด์žฅํ•จ์ˆ˜
  • ๋ฆฌ์ŠคํŠธ
  • Python
  • mysql
  • ์˜ค๋ธ”์™„
  • ์ฝ”ํ…Œ
  • Union
  • ํ† ์ต๊ธฐ์ถœ
  • BFS
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ์ •๋ ฌ
  • sort
  • ํ† ์ต๊ณต๋ถ€
  • BaekJoon
  • ๊ตฌํ˜„
  • ์™„์ „ํƒ์ƒ‰
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ํ•ด์ปค์Šคํ† ์ต
  • ํ† ์ต๋…ํ•™
  • ํ† ์ต์‹œํ—˜
  • ๋ฐฑ์ค€
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉBaekjoon

[Python] ๋ฐฑ์ค€ 16953 A -> B | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ | BFS

2023. 6. 9. 19:28

 

~๋ชฉ์ฐจ~

๋ฌธ์ œ

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

์ž‘์„ฑ ์ฝ”๋“œ


 

๋ฌธ์ œ

https://www.acmicpc.net/problem/16953

 

16953๋ฒˆ: A → B

์ฒซ์งธ ์ค„์— A, B (1 ≤ A < B ≤ 109)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

- ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜, BFS

- ์ž…๋ ฅ ๊ฐ’์— ๋Œ€ํ•ด์„œ ๋‘๊ฐœ์˜ ์—ฐ์‚ฐ์„ ์—ฐ์‡„์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•จ์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ ํ™•์ธ

- ์›ํ•˜๋Š” ๊ฐ’์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ์ถœ๋ ฅ ํ›„ ์ฆ‰์‹œ ์ข…๋ฃŒ( ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌ๋˜๋Š” ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์—ฐ์‚ฐ์ด๋ฏ€๋กœ) : ๊ทธ๋ฆฌ๋””

- ์—ฐ์‚ฐ ๊ฐ’์ด ํƒ€์ผ“ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ•ด๋‹น ์„œ๋ธŒ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ๋”์ด์ƒ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

 

 

์ž‘์„ฑ ์ฝ”๋“œ

from collections import deque
a, b = map(int, input().split())
que = deque()  # BFS

que.append((a*2, 2))  # 2๊ณฑํ•˜๊ธฐ ์—ฐ์‚ฐ
que.append((int(str(a)+'1'), 2))  # 1์ž๋ฆฌ์ˆ˜ ๋”ํ•˜๊ธฐ ์—ฐ์‚ฐ

while que:  # ํ์— ๊ฐ’์ด ์žˆ์„ ๋™์•ˆ
    q = que.popleft()
    if q[0] == b:
        print(q[1])  # ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌ ๋˜๋Š” ํƒ€๊ฒŸ๊ฐ’ ์—ฐ์‚ฐ ํšŸ์ˆ˜ ์ถœ๋ ฅ
        exit()  # ์ข…๋ฃŒ
    else:
        # ๋‘ ๊ฐœ์˜ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ํƒ€๊ฒŸ ๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด ํ์— ์‚ฝ์ž…
        if q[0]*2 <= b:
            que.append((q[0]*2, q[1]+1))
        if int(str(q[0])+'1') <= b:
            que.append((int(str(q[0])+'1'), q[1]+1))

print(-1)  # ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์—์„œ ํƒ€๊ฒŸ ์ฐพ์ง€ ๋ชป ํ•œ๋‹ค๋ฉด

 

 

 

๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์ข‹์•„์š” ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”๐Ÿ’š

 

 

 

'๐Ÿ“๋ฌธ์ œ ํ’€์ด > ๐ŸงฉBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 2579 ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ | DP  (2) 2023.06.16
[Python] ๋ฐฑ์ค€ 1966 ํ”„๋ฆฐํ„ฐ ํ  (0) 2023.06.11
[Python] ๋ฐฑ์ค€ 1003 ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ | DP  (0) 2023.06.08
[Python] ๋ฐฑ์ค€ 9095 1, 2, 3 ๋”ํ•˜๊ธฐ | DP  (0) 2023.06.07
[Python] ๋ฐฑ์ค€ 1715 ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜  (0) 2023.06.06
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ๋ฐฑ์ค€ 2579 ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ | DP
    • [Python] ๋ฐฑ์ค€ 1966 ํ”„๋ฆฐํ„ฐ ํ
    • [Python] ๋ฐฑ์ค€ 1003 ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ | DP
    • [Python] ๋ฐฑ์ค€ 9095 1, 2, 3 ๋”ํ•˜๊ธฐ | DP
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”