๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ’ก

์žฌ๊ท€ํ•จ์ˆ˜์™€ ์Šคํƒ(Stack)

by @ENFJ 2022. 10. 9.

์žฌ๊ท€ํ•จ์ˆ˜ : ์ž๊ธฐ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜

์ด๋•Œ stack ์ด๋ผ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•œ๋‹ค.

 

์žฌ๊ท€ํ•จ์ˆ˜๋Š” for๋ฌธ ์ฆ‰ ๋ฐ˜๋ณต๋ฌธ์˜ ๋Œ€์ฒด์ž์ด๋‹ค. 

 

n ์ž…๋ ฅ๊ฐ’์„ 3์œผ๋กœ ๊ฐ€์ •ํ•˜๊ณ  ์„ค๋ช…์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

12 ์ค„: ์ž…๋ ฅ๊ฐ’ n ์ฆ‰, 3 ์„ ๋ฐ›์Œ.

13 ์ค„:  DFS(3): DFSํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ  3์„ ๋„˜๊น€.

4 ์ค„: ํ•จ์ˆ˜ DFS (3) if ๋ฌธ ์‹คํ–‰

5 ์ค„: ๋งŒ์•ฝ x ๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์‹คํ–‰. 0์ด๊ฑฐ๋‚˜ ์ž‘์œผ๋ฉด ์ข…๋ฃŒ

6 ์ค„: x ์ถœ๋ ฅ -> 3์ด ์ถœ๋ ฅ๋จ.

7์ค„ ; DFS ํ•จ์ˆ˜ ํ˜ธ์ถœ [์ด ๋ถ€๋ถ„์ด ์žฌ๊ท€ํ•จ์ˆ˜์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ž๊ธฐ์ž์‹ ์˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ๋–„๋ฌธ์— ]

DFS(3-1) ๋กœ DFS(2)๊ฐ€ ๋˜๋ฉฐ ํ•จ์ˆ˜ DFS๋ฅผ ํ˜ธ์ถœํ•จ

 

๋‹ค์‹œ 4๋ฒˆ์ค„๋กœ ์˜ฌ๋ผ๊ฐ€์„œ def DFS(2): ๊ฐ€ ๋˜๋ฉด์„œ 

5๋ฒˆ์ค„: if 2> 0 : ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์ฐธ์ด๋ฏ€๋กœ 

6๋ฒˆ์ค„: print(2) ๋กœ ์ธํ•ด์„œ 2๊ฐ€ ์ถœ๋ ฅ

7๋ฒˆ์ค„: DFS(2-1) ์ด ๋จ.   DFS(1)๋กœ  ์ž๊ธฐ ์ž์‹  ํ•จ์ˆ˜์ธ DFS๋ฅผ ํ˜ธ์ถœ [์žฌ๊ท€ํ•จ์ˆ˜]

 

์ด๋Ÿฐ ์›๋ฆฌ๋กœ ๊ฒŒ์† ๋ฐ˜๋ณต๋˜๋‹ค๊ฐ€

 

n ์ด 0์ด ๋˜๋ฉด ์ข…๋ฃŒ๋จ. 

 

๊ฒฐ๊ณผ๋Š”