- DP
- go
- LCs
- μΉ΄μΉ΄μ€2021
- λ°±μλ ν리μ¨λ³΄λ©
- λ°±μ€
- μΉλ¦°μ΄
- λμ νλ‘κ·Έλλ°
- λ€μ΅μ€νΈλΌ
- μκ³ λ¦¬μ¦
- μμ½λ
- Union-Find
- νΈλ¦¬
- λΉνΈλ§μ€νΉ
- DFS
- μν°λ
- μΉ΄μΉ΄μ€ μ½ν
- κ°μ₯κ°κΉμ΄κ³΅ν΅μ‘°μ
- νλ‘κ·Έλλ¨Έμ€
- nestjs
- μ¬κ·
- λΉνΈλ§΅
- Python
- C++
- μ΄λΆνμ
- js
- golang
- ν리μ¨λ³΄λ©
- μ¬λΌμ΄λ© μλμ°
- BFS
- Today
- Total
Hello Ocean! πΌ
[μκ³ λ¦¬μ¦] νμ μκ³ λ¦¬μ¦ (μ ν, μ΄λΆ, ν΄μ, BST) λ³Έλ¬Έ
[μκ³ λ¦¬μ¦] νμ μκ³ λ¦¬μ¦ (μ ν, μ΄λΆ, ν΄μ, BST)
bba_dda 2020. 8. 31. 19:50νμλ¬Έμ ?
μ μ₯λ λ°μ΄ν°λ€ μ€μ μνλ κ°μ μ°Ύλ λ¬Έμ μ΄λ€.
1. μ ν νμ μκ³ λ¦¬μ¦ (Linear Search Algorithm)
-
맨 μμ΄λ, 맨 λ€λΆν° μμλλ‘ νλνλ μ°Ύμ보λ μκ³ λ¦¬μ¦μ΄λ€.
-
κ°μ₯ λ¨μνκ³ κ°λ¨ν νμ μκ³ λ¦¬μ¦μ΄λ€.
- 맨 λλΆν° νλνλ μνλ κ°μ μ°Ύμλ³Έλ€.
- μνλ κ°μ μ°ΎμΌλ©΄, νμμ μ’ λ£νλ€.
μμ
5λ₯Ό μ°Ύμ λ, 맨 μΌμͺ½μ μλ 1λΆν° μμν΄μ νλμ© νμνλ€.
μκ° λ³΅μ‘λ
κΈΈμ΄ nμ§λ¦¬μ 리μ€νΈλ₯Ό νμν λ,
μ΅μ μ κ²½μ°
- 리μ€νΈμ 첫 λ²μ§Έ μμκ° μ λ΅μΈ κ²½μ° : 1λ²
μ΅μ μ κ²½μ°
- 리μ€νΈμ 맨 λ§μ§λ§ μμκ° μ λ΅μ΄κ±°λ, 리μ€νΈμ μ λ΅μ΄ μμ λ : nλ²
λ°λΌμ O(n)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λ€.
2. μ΄μ§ νμ μκ³ λ¦¬μ¦ (Binary Search Algorithm)
μ€κ°μ§μ μ κΈ°μ€μΌλ‘ λ°μ΄ν°λ₯Ό λ°μ© λλ μ νμνλ μκ³ λ¦¬μ¦μ΄λ€.
- μ€κ°μ§μ μ μ νν λ€, μ€κ°μ§μ μ κΈ°μ€μΌλ‘ μΌμͺ½ νΉμ μ€λ₯Έμͺ½ λΆλΆλ§ λ¨κΈ΄λ€.
- λ¨κΈ΄ λΆλΆ μ€μμ λ€μ μ€κ°μ§μ μ μ νν λ€, μΌμͺ½ νΉμ μ€λ₯Έμͺ½λ§ λ¨κΈ΄λ€.
- μ κ³Όμ μ μνλ κ°μ μ°Ύμ λ κΉμ§ λ°λ³΅νλ€
μμ
5λ₯Ό μ°Ύμ λ,
μκ° λ³΅μ‘λ
μ΅μ μ κ²½μ°
- 리μ€νΈμ μ€κ°λΆλΆμ΄ μ λ΅μΌ λ : 1λ²
μ΅μ μ κ²½μ°
- 리μ€νΈμ μ λ΅μ΄ μλ κ²½μ° : log2(n) λ²
λ°λΌμ O(logn)μ μκ° λ³΅μ‘λλ₯Ό κ°μ§λ€
μ ννμμ nμ΄ μ¦κ°ν¨μ λ°λΌ μκ°λ³΅μ‘λκ° μ νμ μΌλ‘ μ¦κ°νμ§λ§, μ΄μ§νμμ nμ΄ μ¦κ°ν΄λ μκ°λ³΅μ‘λκ° μμ£Ό μ²μ²ν μ¦κ°νλ€.
λ³΄ν΅ μ λ ¬λ 리μ€νΈμλ μ΄μ§νμμ μ¬μ©νκ³ ,
μ λ ¬λμ§ μμ 리μ€νΈμλ μ ννμμ μ¬μ©νλ€.
3. ν΄μ νμ μκ³ λ¦¬μ¦ (Hash Search Algorithm)
μ ννμμ΄λ μ΄μ§νμμ, μ΄λ€ κ°μ΄ μ΄λ€ indexμ λ€μ΄μλμ§μ λν μ λ³΄κ° μλ μνμμ νμν λ μ¬μ©νλ λ°©μμ΄μλ€.
λ°λ©΄μ ν΄μ νμμ κ°κ³Ό indexλ₯Ό 미리 μ°κ²°ν΄ λ μΌλ‘μ¨ μ§§μ μκ°μ νμν μ μλ μκ³ λ¦¬μ¦μ΄λ€.
ν¨μλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό 보κ΄ν νμ
보κ΄νλλ° μ¬μ©λ ν¨μλ₯Ό μ¬μ©νμ¬ ν λ²μ λ°μ΄ν°λ₯Ό νμνλ€.
μμ΄λμ΄
-
1μ°¨ μμ΄λμ΄
-
μ²μμλ λ°μ΄ν°μ κ°μ indexμ μ μ₯νλ€
ex) λ°μ΄ν° 24λ 24λ² indexμ μ μ₯
λ°μ΄ν° 30μ 30λ² indexμ μ μ₯
- λλΉλ€ !!
- μ΅μν λ°μ΄ν°μ μ’ λ₯ λ§νΌμ index νμ
-
-
2μ°¨ μμ΄λμ΄
-
λ°μ΄ν°μ ν¨μ(μΌμ κ³μ°)μ μ μ©νμ¬ λμ¨ κ°μ indexλ‘ νμ¬ λ³΄κ΄νλ λ°©λ².
ex) data MOD 10 μ μ μ₯νλ λ°©μμ μ΄μ©νλ©΄,
0~9 κΉμ§μ 10κ°μ indexλ₯Ό μ¬μ©νμ¬ κ°μ μ μ₯ν μ μλ€.
-
ν΄μ ν¨μ
- μ΄λ€ κ°μ΄ μ£Όμ΄μ‘μ λ, κ·Έ κ°μ λννλ κ°μ κ³μ°νλ ν¨μ
-
ν΄μ κ°
- ν΄μ ν¨μμ κ³μ°μΌλ‘ λμ¨ κ°
-
μκ³ λ¦¬μ¦
ν΄μ νμμ μν΄μλ μ΄ λκ°μ μκ³ λ¦¬μ¦μ΄ νμνλ€
- λ°μ΄ν°λ₯Ό μ μ₯νλ μκ³ λ¦¬μ¦
- λ°μ΄ν°λ₯Ό κ²μνλ μκ³ λ¦¬μ¦
ν΄μν¨μλ‘λ λλκΈ° μ°μ°, λλ¨Έμ§ μ°μ° λ± λ€μν μ°μ°μ μ΄μ©ν μ μλ€.
ν΄μ ν¨μλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ μκ³ λ¦¬μ¦
- λ°°μ΄ 2κ°λ₯Ό μ€λΉνλ€
- μ£Όμ΄μ§ κ°λ€μ ν΄μν¨μλ₯Ό μ΄μ©νμ¬ λ³λμ λ°°μ΄μ λ€μ μ μ₯νκΈ° λλ¬Έ
- λ€λ₯Έ νμ μκ³ λ¦¬μ¦μμλ λ°°μ΄ ν¬κΈ°λ₯Ό λ°μ΄ν° μ λ§νΌλ§ μ€λΉνλ©΄ μΆ©λΆνμ§λ§, ν΄μ νμλ²μ λ°μ΄ν° μμ 1.5~2λ°°μ ν¬κΈ°μ λ°°μ΄μ μ€λΉν΄μΌ νλ€.
ex) λ°μ΄ν°κ° 10κ°μ΄λ©΄, λ°μ΄ν°λ₯Ό 15μΌλ‘ λλ λλ¨Έμ§λ₯Ό ν΄μκ°μΌλ‘ μ€μ νλ€.
λ§μ½, κ°μ ν΄μκ°μ κ°μ§ λ°μ΄ν°κ° μλ€λ©΄ (μΆ©λμ΄ μΌμ΄λλ€λ©΄) λΉμ΄μλ μ μΉΈμ 보κ΄νλ€.
ν΄μ ν¨μλ‘ λ°μ΄ν°λ₯Ό κ²μνλ μκ³ λ¦¬μ¦
- μ μ₯ν λ μ¬μ©ν κ²κ³Ό κ°μ ν΄μ ν¨μλ₯Ό μ¬μ©
- μνλ λ°μ΄ν°κ° μ‘΄μ¬νμ§ μμ κ²½μ°μ μ΄λ»κ² μ²λ¦¬ν κ²μΈμ§ μ ν΄μΌ νλ€
μ₯μ
λ°μ΄ν°λ₯Ό μ μ₯νκ±°λ, νμνκ³ μ νλ μμΉλ₯Ό μ¦μ! μ°Έμ‘°ν μ μκΈ° λλ¬Έμ λΉ λ₯Έ μλλ‘ μ²λ¦¬κ° κ°λ₯νλ€.
4. μ΄μ§ νμ νΈλ¦¬ (BST / Binary Search Tree)
νΈλ¦¬ μλ£κ΅¬μ‘°λ₯Ό μ΄μ©ν νμ νΈλ¦¬μ΄λ€.
μ μ
- μΌμͺ½ μλΈνΈλ¦¬μ ν€κ°λ€μ rootμ ν€κ°λ³΄λ€ μλ€
- μ€λ₯Έμͺ½ μλΈνΈλ¦¬μ ν€κ°λ€μ rootμ ν€κ°λ³΄λ€ ν¬λ€
- μΌμͺ½, μ€λ₯Έμͺ½ μλΈνΈλ¦¬λ€μ κ°κ° λͺ¨λ BSTμ μλ₯Ό λ§μ‘±νλ€
- BSTμ λͺ¨λ nodeλ€μ ν€κ°μ uniqueνλ€.
- μμ 4κ°μ§λ₯Ό λͺ¨λ λ§μ‘±ν΄μΌ νλ€.
νμ μκ³ λ¦¬μ¦
μ΄λ ν BSTμμ μνλ κ°μ μ°Ύκ³ μν λ,
rootκ°μ κΈ°μ€μΌλ‘
- μνλ κ° > root ν€ κ° : μ€λ₯Έμͺ½ μλΈνΈλ¦¬λ‘ μ΄λ
- μνλ κ° < root ν€ κ° : μΌμͺ½ μλΈνΈλ¦¬λ‘ μ΄λ
- μνλ κ° = root ν€ κ° : νμ μ’ λ£
μ΄ κ²μ κ³μ λ°λ³΅ν΄λκ°λ©΄ λλ€.
μ½μ μκ³ λ¦¬μ¦
μ΄λ ν κ°μ μ½μ νκ³ μ ν λ,
- μμ νμμκ³ λ¦¬μ¦μ λ¨Όμ μννλ€.
- νμ μ€ν¨μμ , νμμ΄ μ’ λ£λ μμΉμ ν΄λΉ λ Έλλ₯Ό μ½μ νλ€.
- νμ μ±κ³΅μμ, μ΄λ―Έ μ μ₯λμλ ν€κ°μ΄λ―λ‘ μ½μ μ μ€ν¨νλ€.
μμ μκ³ λ¦¬μ¦
μ΄λ ν κ°μ μμ νκ³ μ ν λ,
-
μμ νμ μκ³ λ¦¬μ¦μ λ¨Όμ μννλ€.
-
μμ νλ €λ λ Έλμ μ°¨μμ λ°λΌ
-
μ°¨μ : 0 (leaf node)
κ·Έλ₯ μμ νλ€
-
μ°¨μ : 1 (ν κ°μ μμ μ‘΄μ¬)
μμ νκ³ μμμ μμ ν μ리μ λΆμΈλ€
-
μ°¨μ : 2
μμ μ λ체ν λ Έλλ₯Ό μ°ΎμμΌ νλ€.
μμ ν λ Έλμ
β μΌμͺ½ μλΈνΈλ¦¬μμ κ°μ₯ ν° κ°
β μ€λ₯Έμͺ½ μλΈνΈλ¦¬μμ κ°μ₯ μμ κ°
μ μμ μ λ체ν λ Έλλ‘ μ νλ€.
-
μ°Έκ³ μλ£
http://kocw.xcache.kinxcdn.com/KOCW/document/2018/wonkwang/leesangwon0409/11.pdf
http://kocw.xcache.kinxcdn.com/KOCW/document/2018/wonkwang/leesangwon0409/11.pdf
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] μμ£Όνμ§ λͺ»ν μ μ (0) | 2020.09.07 |
---|---|
[μκ³ λ¦¬μ¦] μ΅λ μ΅μ μ°ΎκΈ° (ν λλ¨ΌνΈ νΈλ¦¬) (0) | 2020.09.07 |
[νλ‘κ·Έλλ¨Έμ€/C++] H-index , Kλ²μ§Έ μ (0) | 2020.08.31 |
[μκ³ λ¦¬μ¦] μ λ ¬(μ½μ , λ²λΈ, ν΅) (0) | 2020.08.17 |
[μ€ν°λ] λΉνΈμ‘°μ , μμ νμ (0) | 2020.08.03 |