λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
728x90
λ°˜μ‘ν˜•

πŸ–₯ Computer Science/Algorithm16

[Algorithm] λ„ˆλΉ„μš°μ„ νƒμƒ‰(BFS,Breadth-First-Search)λž€?(feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ 트리λ₯Ό νƒμƒ‰ν•˜λŠ”λ° μ“°μ΄λŠ” μ•Œκ³ λ¦¬μ¦˜μΈ λ„ˆλΉ„μš°μ„ νƒμƒ‰(BFS)에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ BFSλž€? λ„ˆλΉ„ μš°μ„  탐색은 λ§Ήλͺ©μ  νƒμƒ‰λ°©λ²•μ˜ ν•˜λ‚˜λ‘œ μ‹œμž‘ 정점을 λ°©λ¬Έν•œ ν›„ μ‹œμž‘ 정점에 μΈμ ‘ν•œ λͺ¨λ“  정점듀을 μš°μ„  λ°©λ¬Έν•˜λŠ” 방법이닀. 더 이상 λ°©λ¬Έν•˜μ§€ μ•Šμ€ 정점이 없을 λ•ŒκΉŒμ§€ λ°©λ¬Έν•˜μ§€ μ•Šμ€ λͺ¨λ“  정점듀에 λŒ€ν•΄μ„œλ„ λ„ˆλΉ„ μš°μ„  검색을 μ μš©ν•œλ‹€. 큐λ₯Ό μ‚¬μš©ν•΄μ•Όλ§Œ 레벨 μˆœμ„œλŒ€λ‘œ 접근이 κ°€λŠ₯ν•˜λ‹€. - μœ„ν‚€ λ°±κ³Ό - μ‰½κ²Œ 예제λ₯Ό ν†΅ν•΄μ„œ μ„€λͺ…λ“œλ¦΄κ²Œμš”! μ•„λž˜ 사진과 같이 지ꡬ μ•ˆμ— μ„Έ λ‚˜λΌλ§Œ 있고 λͺ¨λ“  λ‚˜λΌμ™€ λ‚˜λΌμ˜ λ„μ‹œλ“€μ„ νƒμƒ‰ν•œλ‹€κ³  κ°€μ •ν•˜κ² μŠ΅λ‹ˆλ‹€. νƒμƒ‰ν•˜λŠ” 방법은 μ—¬λŸ¬κ°€μ§€κ°€ μžˆκ² μ§€λ§Œ λ¨Όμ € 지ꡬ에 μžˆλŠ” λ‚˜λΌλ₯Ό μ™Όμͺ½λΆ€ν„° μ–΄λ–€ λ„μ‹œλ“€μ΄ μžˆλŠ”μ§€ ν™•μΈν•˜κ³  λ„˜μ–΄κ°€λŠ” 방법은 DF.. 2021. 6. 27.
[Algorithm] 깊이 μš°μ„  탐색(DFS,Depth-First-Search)μ΄λž€? (feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œμ—μ„œ μ—„μ²­ λΉˆλ²ˆν•˜κ²Œ 좜제되고 μ•Œμ•„λ‘λ©΄ 정말 μœ μš©ν•œ DFS에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”! DFSλž€? "깊이 μš°μ„  탐색은 λ§Ήλͺ©μ  탐색 λ°©λ²•μ˜ ν•˜λ‚˜λ‘œ νƒμƒ‰νŠΈλ¦¬μ˜ μ΅œκ·Όμ— μ²¨κ°€λœ λ…Έλ“œλ₯Ό μ„ νƒν•˜κ³ , 이 λ…Έλ“œμ— 적용 κ°€λŠ₯ν•œ λ™μž‘μž 쀑 ν•˜λ‚˜λ₯Ό μ μš©ν•˜μ—¬ νŠΈλ¦¬μ— λ‹€μŒ μˆ˜μ€€μ˜ ν•œ 개의 μžμ‹λ…Έλ“œλ₯Ό μ²¨κ°€ν•˜λ©°, μ²¨κ°€λœ μžμ‹ λ…Έλ“œκ°€ λͺ©ν‘œλ…Έλ“œμΌ λ•ŒκΉŒμ§€ μ•žμ˜ μžμ‹ λ…Έλ“œμ˜ 첨가 과정을 λ°˜λ³΅ν•΄ κ°€λŠ” 방식이닀." - μœ„ν‚€ λ°±κ³Ό - 이게 뭔말이야....;;; μ‰½κ²Œ 예제λ₯Ό ν†΅ν•΄μ„œ μ„€λͺ…λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. μ•„λž˜ 사진과 같이 지ꡬ μ•ˆμ— μ„Έ λ‚˜λΌλ§Œ 있고 λͺ¨λ“  λ‚˜λΌμ™€ λ‚˜λΌμ˜ λ„μ‹œλ“€μ„ νƒμƒ‰ν•œλ‹€κ³  κ°€μ •ν•˜κ² μŠ΅λ‹ˆλ‹€. μ–΄λ–€ μ‚¬λžŒμ€ "λ‚œ λ¨Όμ € μ–΄λ–€ λ‚˜λΌλ“€μ΄ μžˆλŠ”μ§€ λΆ€ν„° ν™•μΈν•˜κ³  κ·Έ λ‚˜λΌ μ•ˆμ— μžˆλŠ”.. 2021. 6. 5.
[Algorithm] λ‹€μ΅μŠ€νŠΈλΌ(Dijkstra) μ•Œκ³ λ¦¬μ¦˜μ΄λž€? (feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ κ·Έλž˜ν”„ λ¬Έμ œμ—μ„œ μ•„μ£Ό λΉˆλ²ˆν•˜κ²Œ μ‚¬μš©λ˜λŠ” λ‹€μ΅μŠ€νŠΈλΌλΌλŠ” μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”! λ‹€μ΅μŠ€νŠΈλΌλž€? πŸ€” λ‚˜λ¬΄ μœ„ν‚€μ—λŠ” λ‹€μŒκ³Ό 같이 μ •μ˜λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. "음의 κ°€μ€‘μΉ˜κ°€ μ—†λŠ” κ·Έλž˜ν”„μ˜ ν•œ μ •μ μ—μ„œ λͺ¨λ“  μ •μ κΉŒμ§€μ˜ μ΅œλ‹¨κ±°λ¦¬λ₯Ό 각각 κ΅¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€." μ‰½κ²Œ λ§ν•˜λ©΄ ν•œ μ •μ μ—μ„œ λ‹€λ₯Έ μ •μ μœΌλ‘œ 이동할 λ•Œ κ°€μž₯ λΉ λ₯Έ 길을 μ°Ύμ•„μ£ΌλŠ” μ•Œκ³ λ¦¬μ¦˜μ΄μ—μš”. κ·Έλž˜ν”„ μ„€λͺ… λ‹€μŒκ³Ό 같은 κ·Έλž˜ν”„κ°€ μžˆλ‹€κ³  κ°€μ •ν•˜κ² μŠ΅λ‹ˆλ‹€. μ‹œμž‘ 정점은 1둜 λͺ©ν‘œ 정점을 4둜 λ‘μ—ˆμ„ λ•Œ κ°€μž₯ κ°€κΉŒμš΄ κ±°λ¦¬λŠ” λͺ‡μΌκΉŒμš”? 1 - 5 - 4 둜 κ°€λŠ” κ²½μš°κ°€ 3 + 1 = 4둜 κ°€μž₯ κ°€κΉŒμš΄ 길이겠죠? μ΄λ ‡κ²Œ κ°„λ‹¨νžˆ λ³΄μ΄λŠ” κ²½λ‘œλŠ” 눈으둜 μ‰½κ²Œ 찾을 수 μžˆμ§€λ§Œ λ³΅μž‘ν•œ 경둜일수둝 μ°ΎκΈ°κ°€ μ–΄λ €μ›Œμ§ˆ κ²ƒμž…λ‹ˆλ‹€. 이.. 2021. 5. 22.
[Algorithm] ν”Œλ‘œμ΄λ“œ 와샬(Floyd Warshall) μ•Œκ³ λ¦¬μ¦˜μ΄λž€? (feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma🍍 μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ κ·Έλž˜ν”„ λ¬Έμ œμ—μ„œ μ•„μ£Ό λΉˆλ²ˆν•˜κ²Œ μ‚¬μš©λ˜λŠ” ν”Œλ‘œμ΄λ“œ μ™€μƒ¬μ΄λΌλŠ” μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”! ν”Œλ‘œμ΄λ“œ μ™€μƒ¬μ΄λž€? πŸ€” μœ„ν‚€ λ°±κ³Όμ—λŠ” λ‹€μŒκ³Ό 같이 μ •μ˜λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. "ν”Œλ‘œμ΄λ“œ 와샬 μ•Œκ³ λ¦¬μ¦˜μ€ λ³€μ˜ κ°€μ€‘μΉ˜κ°€ μŒμ΄κ±°λ‚˜ 양인 (음수 사이클은 μ—†λŠ”) 가쀑 κ·Έλž˜ν”„μ—μ„œ μ΅œλ‹¨ κ²½λ‘œλ“€μ„ μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€." μ‰½κ²Œ λ§ν•˜λ©΄ λͺ¨λ“  μ΅œλ‹¨ 경둜λ₯Ό μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜μ΄μ—μš”. κ·Έλž˜ν”„ μ„€λͺ… μ•„λž˜μ™€ 같은 κ·Έλž˜ν”„κ°€ μžˆλ‹€κ³  κ°€μ •ν• κ²Œμš”. (νŒŒλž€μƒ‰ λ™κ·ΈλΌλ―ΈλŠ” 정점, 사이에 μˆ«μžλŠ” κ±°λ¦¬μž…λ‹ˆλ‹€.) λ§Œμ•½ 1번 μ •μ μ—μ„œ 3번 μ •μ μœΌλ‘œ κ°€λ €λ©΄ μ–΄λ–€ 정점을 μ΄μš©ν•΄μ•Ό κ°€μž₯ μ§§μ„κΉŒμš”? 정닡을 μ•ŒκΈ° μœ„ν•΄μ„  쀑간에 λͺ¨λ“  정점을 κ±°μ³μ„œ κ°„ λ‹€μŒ κ°€μž₯ 짧은 거리λ₯Ό ꡬ해야 ν•  것 μž…λ‹ˆλ‹€. 1번 -> 2번 -> 3번 3.. 2021. 5. 17.
728x90
λ°˜μ‘ν˜•