μ•Œκ³ λ¦¬μ¦˜ πŸ’‘

[python] μ „μ—­λ³€μˆ˜μ™€ μ§€μ—­λ³€μˆ˜ 정리

@ENFJ 2022. 10. 8. 12:26

μ „μ—­λ³€μˆ˜λŠ” main μŠ€ν¬λ¦½νŠΈμ— μ„ μ–Έλœκ²ƒμ„ λ§ν•œλ‹€.

15 쀄: cntλΌλŠ” λ³€μˆ˜λ₯Ό 생성과 λ™μ‹œμ— 5λΌλŠ” 값을 ν• λ‹Ήν•΄μ€€λ‹€.

16 쀄: DFS1() 호좜

17 쀄: DFS2() 호좜

 

 

16λ²ˆμ€„ 에 DFS1() ν˜ΈμΆœμ„ ν•˜μ—¬ 5λ²ˆμ€„μ— μœ„μΉ˜ν•œ DFS1()ν•¨μˆ˜κ°€ μ‹€ν–‰λœλ‹€.

print(cnt) 즉 cntλ³€μˆ˜ 값이 좜λ ₯λ˜λŠ”λ° cnt λΌλŠ” λ³€μˆ˜κ°€ 자기 μžμ‹ μ˜ μ§€μ—­λ³€μˆ˜μΈμ§€ ν™•μΈν•©λ‹ˆλ‹€.

자기의 μ§€μ—­λ³€μˆ˜κ°€ μ•„λ‹ˆλΌλ©΄ μ „μ—­λ³€μˆ˜μΈμ§€ ν™•μΈν•©λ‹ˆλ‹€.

λ‘˜λ‹€ μ•„λ‹ˆλΌλ©΄ μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.

μ—¬κΈ°μ„œλŠ” 6λ²ˆμ€„μ˜ cntλŠ” 자기 μžμ‹ μ˜ μ§€μ—­λ³€μˆ˜κ°€ μ•„λ‹ˆλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μ „μ—­λ³€μˆ˜λ‘œ μž‘λ™ν•˜κ²Œ λ©λ‹ˆλ‹€.

κ·Έλž˜μ„œ 5κ³Ό 좜λ ₯λœλ‹€.

 

17λ²ˆμ€„μ— DFS2() 호좜 ν•˜μ—¬ 8λ²ˆμ€„μ— μœ„μΉ˜ν•œ DFS2()ν•¨μˆ˜κ°€ μ‹€ν–‰ λœλ‹€.

λ§Œμ•½ λ³€μˆ˜cnt κ°€ 5κ°€ λ§žλ‹€λ©΄ cnt 값을 좜λ ₯ν•˜λŠ” μ½”λ“œμ΄λ‹€.

그런데 μ—¬κΈ°μ„œλ„ cntλŠ” μ§€μ—­λ³€μˆ˜μΈμ§€ λ¨Όμ € ν™•μΈν•΄λ³΄λ‹ˆ μ•„λ‹ˆλ‹€. μ „μ—­λ³€μˆ˜λ‘œ μž‘λ™ν•˜κ²Œ λœλ‹€.

κ·Έλ ‡κΈ° λ•Œλ¬Έμ— 5κ°€ 좜λ ₯λœλ‹€.

 

λ§ˆμ§€λ§‰ 18번 쀄 cnt 좜λ ₯ κ°’ 은 5

 

κ²°κ³Ό :

 

κ°€ 좜λ ₯λœλ‹€.

 


μ΄λ²ˆμ—λŠ” 5λ²ˆμ€„μ— cnt=3 만 μΆ”κ°€ν–ˆλ‹€.

 

그러면 6λ²ˆμ€„ λ³€μˆ˜ cntλŠ” 좜λ ₯ν• λ•Œ 15λ²ˆμ€„μ˜ cnt=5 λ₯Ό 좜λ ₯ν•˜μ§€ μ•Šκ³  μ§€μ—­λ³€μˆ˜ 5λ²ˆμ€„ cnt=3 을 λΆˆλŸ¬μ™€μ„œ

3을 좜λ ₯ν•œλ‹€. 


10λ²ˆμ€„μ— cnt=cnt+1 을 μΆ”κ°€ν•΄λ³΄μ•˜λ‹€.  μ΄λ ‡κ²Œ 되면 μ—λŸ¬κ°€ λ°œμƒν•˜λŠ”λ°. κ·Έμ΄μœ κ°€ 

cnt = cnt +1 μ—μ„œ cntλŠ” μ§€μ—­λ³€μˆ˜ μ„ μ–ΈμœΌλ‘œ λ³Ό 수 μžˆλ‹€. 그런데 μ§€μ—­λ³€μˆ˜ 인 cnt의 값이 어디에도 μ„ μ–Έλ˜μ–΄ μžˆμ§€ μ•Šλ‹€.

μ§€μ—­λ³€μˆ˜λ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 8번 9번 사이에 cnt = 1 μ΄λΌλ˜μ§€ cnt에 값을 ν• λ‹Ήν•΄μ£Όλ©΄ ν•΄κ²°λœλ‹€.

 

μ•„λ‹ˆλ©΄ μ „μ—­λ³€μˆ˜λ‘œ μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄ 

 9λ²ˆμ€„ 처럼 global cnt λ₯Ό μ½”λ“œμ— λ„£μ–΄μ£Όλ©΄ μ „μ—­λ³€μˆ˜λ‘œ cntλ₯Ό μ‚¬μš©ν•˜κ²Œ λœλ‹€.