πŸ“Algorithm & Codingtest/μ•Œκ³ λ¦¬μ¦˜ 곡뢀

μ•Œκ³ λ¦¬μ¦˜ ν•™μŠ΅ μš”μ•½

Hush 2021. 12. 5. 20:13

-νƒ„νƒ„ν•œ κΈ°λ³ΈκΈ°λ₯Ό κ°–μΆœ 것

총 9개의 κΈ°λ³Έ μ•Œκ³ λ¦¬μ¦˜μ„ 내면화할것이닀.

1. DFS

2. BFS

3. Quick Search

4. Binary Search

5. Dijkstra

6. FloydWarshall

7. Disjoint Sets

8. Kruskal

9. Topology Sort


μƒμˆ ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ κΈ°λ³Έ ν˜•μ‹μœΌλ‘œ μž‘μ„±ν•˜λŠ” λ°μ—λŠ” λ§‰νž˜μ΄ μ—†μ–΄μ•Ό ν•œλ‹€.
μ‹€μ œ λ¬Έμ œμ—μ„œλŠ” μœ„μ˜ μ•Œκ³ λ¦¬μ¦˜μ„ μ μ ˆν•˜κ²Œ μ‘μš©ν•˜λŠ” 것을 μš”κ΅¬ν•œλ‹€.

νŠΉμ • μ•Œκ³ λ¦¬μ¦˜μ„ ν™œμš©ν•˜λŠ” λ¬Έμ œμž„μ„ κ°„νŒŒν–ˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  κ΅¬ν˜„λŠ₯λ ₯이 λ–¨μ–΄μ Έμ„œ λΉ λ₯΄κ²Œ 문제λ₯Ό ν’€μ–΄λ‚΄μ§€ λͺ»ν•˜λŠ” 상황은 μ ˆλŒ€ μ—†μ–΄μ•Ό ν•œλ‹€.


-μ•Œκ³ λ¦¬μ¦˜λ³„ 포인트

1. DFS :
μž¬κ·€ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€. μž¬κ·€ 깊이 μ œν•œμœΌλ‘œ 인해 였λ₯˜κ°€ λ°œμƒν•˜λŠ”κ²ƒμ— 주의. 
2. BFS :
큐 자료ꡬ쑰λ₯Ό μ΄μš©ν•œλ‹€. 일반적으둜 DFS보닀 μž‘λ™μ†λ„κ°€ λΉ λ₯΄λ‹€.

*DFS와 BFSλŠ” κΈ°λ³Έ ν˜•μ‹μœΌλ‘œ μ•Œκ³ λ¦¬μ¦˜μ„ μž‘μ„±ν•˜λ”λΌλ„ κ·Έλž˜ν”„κ°€ Adjecency List둜 μ£Όμ–΄μ§€λŠ”μ§€, Adjecency Matrix둜 μ£Όμ–΄μ§€λŠ”μ§€μ— 따라 μ‘°κΈˆμ”© μ½”λ“œκ°€ λ‹¬λΌμ Έμ•Όν•œλ‹€.

*DFSλŠ” ν˜„μž¬ λ…Έλ“œμ— λŒ€ν•΄ 방문을 μ²΄ν¬ν•˜μ§€λ§Œ BFSλŠ” μžμ‹ λ…Έλ“œμ— λŒ€ν•΄ 방문을 체크함에 μ£Όμ˜ν•˜μž.

3. 퀡정렬 :
μ½”λ“œλ₯Ό κΉ”λ”ν•˜κ²Œ μž‘μ„±ν•  λ•Œ μ‹ κ²½μ“Έ ν¬μΈνŠΈκ°€ λ§Žλ‹€. λŒ€μ†Œ 비ꡐ μ—°μ‚°μžμ— λ“±ν˜Έκ°€ λ“€μ–΄κ°€λŠ”μ§€, pivot의 쒌 μš°μ— μ›μ†Œκ°€ μ—†μ„λ•Œμ—λ„ μ—λŸ¬κ°€ λ°œμƒν•˜μ§€λŠ” μ•ŠλŠ”μ§€, 인덱슀 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”μ§€μ— μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.
4. 이진탐색 :
μ½”λ“œλ₯Ό κΉ”λ”ν•˜κ²Œ μž‘μ„±ν•  λ•Œ μ‹ κ²½ μ“Έ ν¬μΈνŠΈκ°€ λ§ˆμ°¬κ°€μ§€λ‘œ λ§Žλ‹€. λ˜ν•œ 이진탐색을 μ“°λ©΄ ν’€ 수 μžˆλŠ” μƒν™©μž„μ„ μ•Œμ•„μ°¨λ¦¬λŠ” 것 λ˜ν•œ μ€‘μš”ν•˜λ‹€.
5. λ‹€μ΅μŠ€νŠΈλΌ :
νž™ 자료ꡬ쑰λ₯Ό ν™œμš©ν•œλ‹€. μ—¬λŸ¬ λ°©μ‹μœΌλ‘œ λ³€ν˜•μ΄ κ°€λŠ₯ν•˜κΈ°μ— κΈ°λ³Έ ν˜•μ‹μ€ μ•„μ£Ό μ‹œμ›μ‹œμ›ν•˜κ²Œ μž‘μ„±ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.
6. ν”Œλ‘œμ΄λ“œ μ›Œμ…œ :
κ΅¬ν˜„μ€ μ‰¬μš°λ‚˜ μ‹œκ°„λ³΅μž‘λ„κ°€ O(N^3)μž„μ— μ£Όμ˜ν•˜μž
7. μ„œλ‘œμ†Œ μ§‘ν•© :
κ²½λ‘œμ••μΆ•λ²•μ„ ν™œμš©ν•˜λŠ” λ°©μ‹μœΌλ‘œ λΉ λ₯΄κ²Œ κ΅¬ν˜„ν•  수 μžˆλ„λ‘ μˆ™λ‹¬ν•˜μž
8. 크루슀칼 :
νž™μ„ ν™œμš©ν•œλ‹€. κ΅¬ν˜„λ„ μ–΄λ ΅μ§€ μ•Šμ€λ“―
9. μœ„μƒμ •λ ¬ :
아직 μΆ©λΆ„νžˆ κ³΅λΆ€ν•˜μ§€ μ•Šμ•˜μŒ