ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ฉ ๊ทธ๋ํํ์, BFS
thinking
1. fail (๋ฉ๋ชจ๋ฆฌ์ด๊ณผ)
์ฒ์ ํ์์๋๋ N๊ณผ K์ ๋ฒ์๊ฐ ์ปค์ ๋ฐฉ๋ฌธ์ฒดํน์ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ๋ ๋ฆฌ์คํธ๋ก ์ ๋ง๋ค๊ณ ๋์ ๋๋ฆฌ๋ก ๋ง๋ค์๋๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฌ๋ค.
๊ตฌ๊ธ๋งํด๋ณด๋, ์ด๋ ๊ฒ ํ๋ฉด ๋ฐฉ๋ฌธํ๋ ๋ ธ๋๋ ํ์ ๋ค์ ๋ฃ์ด์ ธ์ ๊ทธ๋ ๋ค๊ณ ํ๋ค.
โญ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ๋ฐ์ ์ด์ :
๊ณผ๊ฑฐ์ ํ๋ ๊ฐ์ ๊ณ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ์ ๊ฐ์ ๋ฃ๋ ๊ฒ ๋๋ฌธ์ ๋ฐ์ํจ.
ex. 10์์ ๊ฐ ์ ์๋ ๋ ธ๋: 9, 11, 20. but, 10๊น์ง ๊ฐ ์ ์๋ ๋ฐฉ๋ฒ ์์ฒญ ๋ง์. (9->10, 11->10, 5->10 ... )
2. success ๐
๋ฐฉ๋ฌธ์ฒดํน ๋ฆฌ์คํธ๋ฅผ ์ธ๋ฑ์ค๋ก ์ ๊ทผํด 100,001 ๊ฐ์ ์นธ์ผ๋ก ๋ง๋ค์ด์คฌ๋ค. ์นธ์ด 10๋ง๊ฐ ์์ด๋ ์๋ฌด๋ฐ ์๊ด์๋ค.
๊ดํ ์ซ์ ์ปค์ง๊ณ for๋ฌธ ๋ง์์ง๋ฉด ์ซ๊ฒ๋๋ค.. ์ซ์ง๋ง์
์ด๋ ์ฃผ์ํ ๊ฑด 19๋ฒ์งธ ์ค์ if 0<=v<=100000: ์กฐ๊ฑด์ ์ค์ ํด์ผํ๋ค !
์๋๋ฉด x๊ฐ ๊ฐ์ง ์ ์๋ ๊ฐ์ด x-1, x+1, x² ์ธ๋ฐ ๋์ ์์น์ ๋ฒ์๊ฐ 0 ≤ K ≤ 100,000 ์ด๋ฏ๋ก x-1, x+1, x² ๊ฐ๋ค์ 0~100,000 ์ฌ์ด์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฝ๋
from collections import deque
def bfs(x):
global res
q = deque()
q.append(x)
visited = [0]*100001
visited[x] = 1
while q:
x = q.popleft()
if x == K:
res = visited[x]-1
return
tmp = [] # ์ฐ๊ฒฐ๋
ธ๋ ๋ด์ ์์ ๋ฆฌ์คํธ
tmp.extend([x - 1, x + 1, 2 * x])
for v in tmp:
if 0<= v <=100000: # ๋ฐํ์์๋ฌ(out of range) ๋ฐฉ์ง์ฉ ๋ฒ์์ค์
if not visited[v]: # ๋ฐฉ๋ฌธ ์ํ์ผ๋ฉด ๋ฐฉ๋ฌธ์ฒดํฌ
visited[v] = visited[x]+1
q.append(v)
tmp = [] # ์ด๊ธฐํ
N, K = map(int, input().split()) # N:์๋น, K:๋์
res = 0
bfs(N)
print(res)
ํ์คํ
์ค๋ฒ 1์ ๋ณด๊ณ ์คํจ๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ ํจ์ฐํด์ ํ๋ณตํ๋ค ๐
'algorithm > baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2178. ๋ฏธ๋ก ํ์ / python ํ์ด์ฌ (0) | 2021.06.02 |
---|---|
[๋ฐฑ์ค] 1764. ๋ฃ๋ณด์ก / python ํ์ด์ฌ (0) | 2021.06.02 |
[๋ฐฑ์ค] 1676. ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ / python ํ์ด์ฌ (0) | 2021.06.02 |
[๋ฐฑ์ค] 1463. 1๋ก ๋ง๋ค๊ธฐ / python ํ์ด์ฌ (0) | 2021.04.12 |
[๋ฐฑ์ค] 1541. ์์ด๋ฒ๋ฆฐ ๊ดํธ / python ํ์ด์ฌ (0) | 2021.04.10 |
- 2579 ๊ณ๋จ์ค๋ฅด๊ธฐ
- ๊ธฐ์ง๊ตญ์ค์น
- ๋ณด์์ผํ
- ํ๋ก๊ทธ๋๋จธ์ค
- 20057 ๋ง๋ฒ์ฌ ์์ด์ ํ ๋ค์ด๋
- BFS
- dfs
- ์ผ์ฑ๊ธฐ์ถ
- dp
- ํ์ด์ฌ
- merge ์๋ฌ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- merge์๋ฌ
- Python
- react
- 20056 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ
- ์ผ์ฑ์ฝํ
- 17406 ๋ฐฐ์ด๋๋ฆฌ๊ธฐ4
- 21609 ์์ด ์คํ๊ต
- ๋ธ๋ฃจํธํฌ์ค
- 2018 ์นด์นด์ค ๊ณต์ฑ
- git ๋ฏธ๋ฌ๋ง
- ์์ด๋๋ง์๊ธฐ
- swea
- Total
- Today
- Yesterday