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

DFS ๋ฌธ์ œ

by @ENFJ 2022. 10. 6.

1.  ๋ณ€์ˆ˜ n ์— ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

2.  ch ๋ผ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.  ๊ฐ’์ด 0 ์œผ๋กœ ํ•ด์„œ n+1 ํฌ๊ธฐ๋กœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.


 v = 1

3. DFS(1) ๋Š” 4๋ฒˆ์ค„์— ํ•จ์ˆ˜ DFS ์˜ v๊ฐ’์— 1์„ ๋„ฃ์–ด ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

4๋ฒˆ์ค„ : ํ•จ์ˆ˜ DFS ์— 1์ด ๋“ค์–ด๊ฐ€๋ฉด,

n(์—ฌ๊ธฐ์„œ n์„ 3์œผ๋กœ ๊ฐ€์ •ํ•œ๋‹ค) +1 ์˜ ๊ฐ’์€ 4์ด๋‹ค. 

5๋ฒˆ์ค„ :  v๊ฐ€ n+1 ์™€ ๊ฐ™๋‹ค๋ฉด ๋ฐ”๋กœ ์•„๋ž˜ for๋ฌธ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค. ํ˜„์žฌ v์—๋Š” 1์ด ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— 1 !=4 ์ด๋ฏ€๋กœ 10๋ฒˆ์ค„ else๊ฐ€ ์‹คํ–‰์ด ๋œ๋‹ค.

 

11๋ฒˆ์ค„: ch[1] =1 ์ด๋ฏ€๋กœ , 

 

์ด๋ ‡๊ฒŒ ๋œ๋‹ค.

 


 v = 2

12๋ฒˆ์ค„ : DFS(v+1) ์—๋Š”  DFS(2)๊ฐ€ ๋ ๊ฒƒ์ด๊ณ , DFS(2)๋Š”   4๋ฒˆ์ค„์— ์žˆ๋Š”  ํ•จ์ˆ˜ DFS ์— ์ด๋ฒˆ์—๋Š” 1์ด์•„๋‹Œ 2๋ฅผ ๋„ฃ์–ด์„œ ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค.

5๋ฒˆ์ค„ : if 2 == 4:  ๊ฐ€ ๋˜๊ณ , ์ด๋•Œ ๊ฑฐ์ง“์ด๋ฏ€๋กœ, else ๋ฌธ์œผ๋กœ ์ด๋™ํ•œ๋‹ค. 

ํ˜„์žฌ v=2 ์ž„์„ ์žŠ์ง€๋ง์ž.  ๊ทธ๋Ÿผ v=2 ๋ฅผ ๊ฐ€์ง€๊ณ  else ๋ฌธ์— ๋„์ฐฉํ–ˆ์œผ๋‹ˆ,

11๋ฒˆ์ค„: ch[2] =1 ์ด ๋œ๋‹ค. 

12๋ฒˆ์ค„: DFS(2+1) ๋กœ DFS(3)์ด ๋˜๊ณ , DFS(3)์€ ๋‹ค์‹œ 4๋ฒˆ์ค„์— ์œ„์น˜ํ•œ ํ•จ์ˆ˜ DFS(v)๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.


 v = 3

4๋ฒˆ์งธ์ค„ :  def DFS(3) 

5๋ฒˆ์งธ์ค„ : if 3 == 3+1:      < false ๋กœ else ๋ฌธ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

10๋ฒˆ์ค„: ch[3] =1      ์ด๋ฏ€๋กœ ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ 3๋ฒˆ์— 1์„ ์ฐ์–ด์ค€๋‹ค.

12๋ฒˆ์ค„: DFS(4) ๊ฐ€ ๋˜๊ณ  ๋˜ ๋‹ค์‹œ 4๋ฒˆ์ค„์— ์žˆ๋Š” ํ•จ์ˆ˜ DFS(v) ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ด๋™ํ•œ๋‹ค.

 


 v = 4

4๋ฒˆ์ค„: def DFS(4)

5๋ฒˆ์ค„: if 4 == 3+1 ์ด ๋˜๊ณ  ๋“œ๋””์–ด ์ฐธ์ด ๋œ๋‹ค. ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ์•„๋ž˜ for๋ฌธ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค.

6๋ฒˆ์ค„: for i in range(1, n+1): ์€ 1๋ถ€ํ„ฐ n๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋Š” ์˜๋ฏธ์ด๋‹ค. ์—ฌ๊ธฐ์„œ n์„ 3์œผ๋กœ ์žก์•˜๊ธฐ ๋•Œ๋ฌธ์—  

for 1 in range (1, 4)๊ฐ€ ๋œ๋‹ค.

7๋ฒˆ์ค„: if ch[1] ==1 ์ด๋ผ๋ฉด 

8๋ฒˆ์ค„ : print ๋ฌธ์„ ํ†ตํ•˜์—ฌ i ๊ฐ’ ์ฆ‰ ๋ฆฌ์ŠคํŠธ ์œ„์—  ์ธ๋ฑ์Šค ๊ฐ’ ์ด ์ฐํžŒ๋‹ค.

ch ์ธ๋ฑ์Šค๊ฐ€ 1์ธ๊ฐ’์€ 1, 2, 3 ๋ชจ๋‘ ๋‹ค ํ•ด๋‹น๋˜๋ฏ€๋กœ 1 2 3 ์ด ์ถœ๋ ฅ๋œ๋‹ค.