์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Recent Posts
Link
Tags
- ๋๋น์ฐ์ ํ์
- dev
- PRD
- abap dictionary
- ๊น์ด์ฐ์ ํ์
- modify
- SAP
- screen program
- ์๋ฐฉํฅํ์
- ์ค๋ฒ2
- t์ฝ๋
- Export
- structure
- select
- subscreen
- Internal Table
- call function
- ๋ชจ๋ํ
- screen
- ๋จ๋ฐฉํฅํ์
- ๋ฐฑ์ค
- Import
- ABAP
- ์๊ณ ๋ฆฌ์ฆ
- Function Module
- qas
- ์ด๋ถํ์
- tasknumber
- ์คํธ๋ญ์ฒ
- ์ค๋ฒ3
Archives
- Today
- Total
CS Student’s SAP&Tech Journey๐ซ
[์๊ณ ๋ฆฌ์ฆ] ๋๋น์ฐ์ ํ์(BFS)์ด๋ ๋ณธ๋ฌธ
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
[์๊ณ ๋ฆฌ์ฆ] ๋๋น์ฐ์ ํ์(BFS)์ด๋
์ธํฌ๋งํฑ 2024. 11. 5. 15:331. ๋๋น ์ฐ์ ํ์ BFS ( Breadth-First Search )
BFS๋ ๋๋น ์ฐ์ ํ์์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ๊ทธ๋ํ์์ ๊ฐ๊น์ด ๋ ธ๋๋ถํฐ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. BFS๋ ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ฉฐ, ๊ตฌ์ฒด์ ์ธ ๋์ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ์ ์์ ๋ ธ๋๋ฅผ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
- ํ์์ ๋ ธ๋๋ฅผ ๊บผ๋ธ ๋ค์ ํด๋น ๋ ธ๋์ ์ธ์ ๋ ธ๋ ์ค์์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ฅผ ๋ชจ๋ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌ ํ๋ค.
- ๋ ์ด์ 2๋ฒ์ ๊ณผ์ ์ ์ํํ ์ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
2. BFS ๋์ ์์
- [Step 0] ๊ทธ๋ํ๋ฅผ ์ค๋น (๋ฐฉ๋ฌธ๊ธฐ์ค : ๋ฒํธ๊ฐ ๋ฎ์ ์ธ์ ๋
ธ๋๋ถํฐ) / ์์๋
ธ๋ : 1
- [Step 1] ์์๋
ธ๋ ‘1’์ ํ์ ์ฝ์
ํ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌํฉ๋๋ค.
- [Step 2] ํ์์ ๋
ธ๋ ‘1’์ ๊บผ๋ด ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋
ธ๋ ‘2’, ‘3’, ‘8’์ ํ์ ์ฝ์
ํ์ฌ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํฉ๋๋ค.
- [Step 3] ํ์์ ๋
ธ๋ ‘2’์ ๊บผ๋ด ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋
ธ๋ ‘7’ ์ ํ์ ์ฝ์
ํ์ฌ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ
- [Step 4] ํ์์ ๋
ธ๋ ‘3’์ ๊บผ๋ด ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋
ธ๋ ‘4’, ‘5’ ์ ํ์ ์ฝ์
ํ์ฌ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ
- [Step 5] ํ์์ ๋
ธ๋ ‘8’์ ๊บผ๋ด๊ณ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋
ธ๋๊ฐ ์์ผ๋ฏ๋ก ๋ฌด์
- ์ด๋ฌํ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ ์ฒด ๋
ธ๋์ ํ์ ์์(ํ์ ๋ค์ด๊ฐ ์์)๋ ๋ค์๊ณผ ๊ฐ์
โ๏ธ ํ์ ์์ : 1 → 2 → leftpop(1) → 3 → 8 → 2(leftpop) → 7 → 3(leftpop) → 4 → 5 → 8(leftpop) → 6
3. BFS ์ฝ๋
* ์๋ฐฉํฅ ํ์ ๊ฐ์
* ๋ฐฉ๋ฌธํ ๋
ธ๋์ ์์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์
from collections import deque
# ๊ฐ ๋
ธ๋๊ฐ ์ฐ๊ฒฐ๋ ์ ๋ณด๋ฅผ ํํ(2์ฐจ์ ๋ฆฌ์คํธ)
graph = [
[],
[2,3,8], #๋
ธ๋ 1
[1,7], #๋
ธ๋ 2
[1,4,5], # ๋
ธ๋ 3 ..
[3,5],
[3,4],
[7],
[2,6,8],
[1,7]
]
# ๊ฐ ๋
ธ๋๊ฐ ๋ฐฉ๋ฌธ๋ ์ ๋ณด๋ฅผ ํํ(1์ฐจ์ ๋ฆฌ์คํธ)
visited = [False]*9
# ์ ์๋ BFS ํจ์ ํธ์ถ
def bfs(graph, start, visited): #star๋ ์์๋
ธ๋
queue = deque([start]) # ์์๋
ธ๋๋ฅผ ํ์ ๋ฃ์ด์ค๋ค
visited[start] = True # ์์๋
ธ๋ ๋ฐฉ๋ฌธ์ฒ๋ฆฌ
while queue: # ํ ๋น๋๊น์ง ๋ฐ๋ณต
v = queue.popleft() # ํ์ ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ์์ ๋ฝ๊ธฐ
print(v, end=' ')
for i in graph[v]: # ํ์ ๋งจ ์ ๋
ธ๋์ ์ธ์ ํ ๋
ธ๋๋ค์ด ๋ด๊ธด ์ ๋ณด
if not visited[i]: # ๋ง์ฝ ์ธ์ ํ ๋
ธ๋์ ๋ฐฉ๋ฌธ์ด ์๋์๋ค๋ฉด
queue.append(i)
visited[i]=True # ๋ฐฉ๋ฌธํ ๋
ธ๋ True ์ฒ๋ฆฌ
bfs(graph,1,visited)
'์๊ณ ๋ฆฌ์ฆ > ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ๊ตฌํ(Implementation) / ํ๋ ฌ, ์๋ฎฌ๋ ์ด์ ๋ฌธ์ ์ ๊ทผ ๋ฐฉ๋ฒ! (1) | 2025.05.16 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ฆฌ๋(Greedy) ์๊ณ ๋ฆฌ์ฆ์ด๋ (0) | 2025.05.16 |
[์๊ณ ๋ฆฌ์ฆ] ๊น์ด์ฐ์ ํ์(DFS)์ด๋ (0) | 2024.10.31 |