-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4-mong3125 #15
4-mong3125 #15
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vector
μ edge
λ‘ μ΄λ£¨μ΄μ§ κ·Έλν μλ£κ΅¬μ‘°κ° λ°λ‘ λ μ€λ₯΄λ λ¬Έμ λ€μ
κΉμ΄ μ°μ νμμΌλ‘ κ° μ£μ§μ μ κ·Όνμλ κ²κ³Ό μλ°©ν₯μΈ κ²κΉμ§ λμΉμ§ μκ³ κ³ λ €νμ μ μ΄ μΈμκΉμμ΅λλ€.
[Algorithm] μλ£κ΅¬μ‘° κ·Έλν(Graph)λ 무μμΈκ°?
μ λ¬Έμμμ κ·Έλνμ λν μ€λͺ μ΄ κ°λ΅νκ² μ λμ΄μλκ² κ°μμ νλ² κ°μ Έμ보μμ΅λλ€.
κ³ μνμ ¨μ΅λλ€~~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ€λͺ ν΄μ£Όμ κ±Έ 보λ μ΄λ€ μκ³ λ¦¬μ¦λλ‘ λμκ°λμ§ λλ΅μ μΌλ‘ μ΄ν΄κ° κ°λ€μ. λ§μΉ¨ bfsμ dfs 곡λΆμ€μ΄μλλ° μ΄λ€ μμΌλ‘ μ½λλ₯Ό μ§λμ§ μμ΄λμ΄ μ μ»μ΄κ°λλ€. μκ³ νμ ¨μ΅λλ€.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ€λλ§μ μλ°λ‘ μμ±λ μ½λλ₯Ό 보λ μ¬λ°λ€μ γ γ
μ λ μ΄ λ¬Έμ λ₯Ό λ΄€μ λ linked-listλ₯Ό μ΄μ©ν΄μ λ¬Έμ λ₯Ό νμ΄μΌκ² λ€λΌκ³ μκ°νμμ΅λλ€.
λ
Έλλ€μ μ μ₯ν λ ν΄λΉ κ·Έλ£Ήμ λμ₯(ν΄λΉ κ·Έλ£Ήμμ 맨 μ²μμ μ κ·Όλλ μμ)μ΄ μ΄λ―Έ μλ€λ©΄, ν΄λΉ λμ₯μ linked-listλ₯Ό μ°κ²°μν€κ³ ,
μμ μ κ·Έλ£Ήμ λμ₯μ΄ μλ€λ©΄ μμ μ΄ λμ₯μ΄ λμ΄ μλ‘μ΄ linked-listλ₯Ό λ§λλ λ°©μμ μ¬μ©ν΄λ³΄μμ κ² κ°μ΅λλ€.
λ¬Όλ‘ μμ§ νλ‘κ·Έλλ° ν΄λ³΄μ§ μμ κ²°κ³Όλ₯Ό λͺ¨λ₯΄μ§λ§, μ΄ λ°©λ²μ΄ λ¨Όμ λ μ¬λμ΅λλ€.
λ¬Όλ‘ DFSλ μκ°μ λͺ»νμλλ° μλ‘μ΄ λ°©λ²μ μ μ μμ΄μ μ’μμ΅λλ€.
첫 PR μκ³ νμ ¨μ΅λλ€ π
linked-list λ°©λ²λ κ°λ₯ν κ² κ°μλ° μ΄λ κ²μ΄ λ ν¨μ¨μ μΌμ§λ μ’ λ μκ°ν΄λ΄μΌ λ κ² κ°λ€μ. μλ‘μ΄ μκ°μμ μ견 μ μν΄μ£Όμ μ κ°μ¬ν©λλ€!! |
π λ¬Έμ λ§ν¬
μ°κ²° μμμ κ°μ
βοΈ μμλ μκ°
30λΆμ λ κ±Έλ Έμ΅λλ€.
β¨ μλ μ½λ
λ¬Έμ μ€λͺ
λ Έλμ μ£μ§λ₯Ό μ λ ₯μΌλ‘ λ°μ΅λλ€.
μ΄ λ μ°λ¦¬λ μ°κ²° μμμ κ°μλ₯Ό μΈμΌνλλ° μ°κ²° μμκ° λμ§ λͺ°λΌμ μ°κ²° μμλΆν° μμλ³΄κ² μ΅λλ€.
μλ₯Ό λ€μ΄μ μ€λͺ μ νμλ©΄ λ Έλλ μ¬, μ£μ§λ λ€λ¦¬λΌκ³ μκ°ν΄λ³΄κ² μ΅λλ€. κ·Έ λ μ°κ²°λμ΄μλ λ©μ΄λ¦¬λ€μ΄ μ°κ²° μμμ λλ€.
μμ 1λ² κ°μ κ²½μ°λ
(1,2,5),(3,4) μ΄λ κ² λ λ©μ΄λ¦¬λ‘ μ΄λν μ μμ΅λλ€.
κ·Έλ λ€λ©΄ λ¨μ΄μ μλ λ©μ΄λ¦¬ κ°μλ₯Ό μΈλκ² λ¬Έμ κ° μ μν λͺ©νλΌκ³ λ³Ό μ μμ£ .
μμ 2λ²μ λ©μ΄λ¦¬κ° νλμ λλ€.
ν΄κ²°κ³Όμ
1. μ λ ₯μ μ΄λ»κ² λ°μμΌ ν κΉ??
μ²μμλ NodeλΌλ ν΄λμ€λ₯Ό λ§λ€μ΄μ ν΄κ²°νλ €κ³ νμ΅λλ€. μ°κ²°λ¦¬μ€νΈ νμμΌλ‘ ꡬνμ ν λ€μ DFS λ°©μμΌλ‘ νλ €κ³ νμ΄μ.
νμ§λ§ μ£μ§λ₯Ό μ°κ²°νλλ° μκ°μ΄ λ무 μ€λ μμκ° λμμ΅λλ€. μλλ©΄ λ Έλλ‘ μ΄λ€μ§ κ°μ²΄ λ°°μ΄μ μ μΈνκ³ κ°μ²΄ λ°°μ΄ μμμ κ°μ²΄λ₯Ό μ°Ύμμ μ£μ§μ λ£μ΄μ€μΌ νκΈ° λλ¬Έμ΄μ£ .
λλ§μΈκ³ νλ μ μ¬μ§μμ edgesμ μΆκ°νλ €κ³ νλ©΄ μλ‘ μμ±ν΄μ μΆκ°νλκ² μλκ³ κΈ°μ‘΄μ μμ±λ λ°°μ΄μμ κ°μ²΄λ₯Ό κΊΌλ΄μμ λ£μ΄μ€μΌν©λλ€. λ©λͺ¨λ¦¬ μ€λ²ν€λλ μκΈ°κ³ κ³Όμ μμ²΄κ° λ§€λλ½μ§ λͺ»ν©λλ€.
κ·Έλμ μλ‘μ΄ λ°©λ²μΌλ‘ μ£μ§κ° μ°κ²°λμ΄μλμ§ μλμ§ true falseλ‘ λνλ΄μ£Όλ λ€μκ³Ό κ°μ λ°°μ΄λ‘ ν΄κ²°νμ΅λλ€.
(λ°©ν₯μ΄ μκ΄μλ κ·ΈλνλΌμ μλ°©ν₯μΌλ‘ μ€μ ν΄μ€¬μ΅λλ€)
μ΄λ¬λ©΄ μ λ ₯μ΄ ν¨μ¬ κ°νΈν΄μ§μ£ .
2. DFS μκ³ λ¦¬μ¦ μ μ©
μ΄μ μ λ ₯μ λ€ λ°μμμΌλ λ¬Έμ λ₯Ό ν΄κ²°ν΄λ΄ μλ€.
DFSλ μλμ κ°μ΄ νμνλ λ°©λ²μ λλ€.
μ΄λ κ² λ Έλμ μ°κ²°λμ΄μλ μ£μ§λ₯Ό 건λ λ Έλλ€μ λ κΉκ² νμν©λλ€.
μ΄ λ°©λ²μ forλ¬Έκ³Ό μ¬κ·ν¨μλ‘ κ΅¬νν μ μμ΅λλ€.
forλ¬Έμ΄ λ¨Όμ λκΈ°μ μ μ¬κ·ν¨μλ‘ κΉκ² κΉκ² λ€μ΄κ°μ£ νλμ μ¬κ·ν¨μκ° λ€ λμ΄λλ©΄ μ¦, κΉκ² κ° μ μλ κ³³κΉμ§ κ°μ λ§νμ λμ΄λλ©΄ forλ¬Έμ μν΄μ λ€μλ²μ§Έ dfsν¨μκ° μ€νλ©λλ€.
κ·ΈλΌ μ΄μ dfsλ‘ νμμ νλ©΄μ μμ νμλ₯Ό ν΄μ£Όκ² μ΅λλ€. μ΄λ₯Ό μ λ cacheλΌλ λ°°μ΄μ ν΅ν΄μ ꡬνμ νλλ°μ.
μ²μμ 보μ¬λλ¦° μμ μ¬μ§1μ 보μλ©΄μ μ€λͺ μ λ€μ΄μ£ΌμΈμ. λ€μμλ κ·Έλ¦Όλ κ·Έλ €λ³΄λλ‘ νκ² μ΅λλ€.
cacheλ μ΄μ μ λ°©λ¬Ένμ μ΄ μλμ§ μ¬λΆλ₯Ό λνλ΄λ λ°°μ΄μ λλ€.
κ·Έ λ€μμ 1μ 첫λ²μ§Έ μ£μ§λ₯Ό 건λ 2λ₯Ό λ°©λ¬Ένκ² λλ©΄ cache[2]μλ trueλ‘ νκΈ°λ₯Ό ν΄μ£Όκ³ 2μ 첫λ²μ§Έ μ£μ§μΈ 5λ₯Ό λ°©λ¬Ένλ©΄ cache[5]μλ trueλ‘ νκΈ°λ₯Ό ν΄μ€λλ€. μ΄ν 5μ μ£μ§λ₯Ό λ°©λ¬Ένλ©΄ 1μ λ§λκ² λλλ° μ΄ λ Έλλ cacheλ₯Ό 보λ trueλ‘ μ νμμ΅λλ€. λ©μΆμ£ . κ·Έ λ€μ 2μ λ€μ μ£μ§μΈ 1μ λ°©λ¬Έν©λλ€. λ§μ°¬κ°μ§λ‘ trueμ£ λ©μΆ₯λλ€. 1μ λ€μ μ£μ§μΈ 2λ λ§μ°¬κ°μ§μ λλ€. μ΄ κ³Όμ μμ μ£μ§λ₯Ό ν΅ν΄ κ° μ μλ λͺ¨λ κ³³μ λ€ λλ¬λ³΄κ² λ©λλ€.
μ κ³Όμ μ 보λ€λ³΄λ©΄ μμν λ λ©μΆλ©΄ μ°κ²° μμκ° μλ‘κ² μΆκ°λμ§ μκ³ μμν λ λ©μΆμ§ μμΌλ©΄ μ¦ cacheμ 0μ΄ μ μ₯λμ΄μλ€λ©΄ μ°κ²° μμκ° μΆκ°λ¨μ μ μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄μ μ°κ²° μμλ₯Ό μ½κ² μ μ μκ² λ€μ. ꡬνν΄λ΄ μλ€.
μ΄λ κ² λλ©΄ μ΄μ trueλ₯Ό λ°νν λλ§ κ°μμ μΆκ°λ₯Ό ν΄μ£Όλ©΄ λκ² μ΅λλ€.
μ΄μ countλ₯Ό μΆλ ₯ν΄μ£ΌκΈ°λ§ νλ©΄ λ¬Έμ κ° ν΄κ²°λ©λλ€.
π μλ‘κ² μκ²λ λ΄μ©
μ΄μ μ λ°°μ λ λ΄μ©μΈλ° μ¬μ€ μ€λλ§μ μκ³ λ¦¬μ¦μ μ‘μμ κΈ°μ΅μ λλ¬μ΄ κ°λ©° μ΄λ¬μμ§ μ λ¬μμ§ νλκ² μ»Έμ΅λλ€.
κ°μ΄ 곡λΆλ₯Ό νλ €κ³ νλ λ§ν¬μ λ¬Έλ²μ μ’ κ³΅λΆν΄μΌκ² λ€μ. 보기 λΆνΈνκ² μ μ΄μ μ£μ‘ν©λλ€. λ€μλΆν°λ λ°λ‘ μλμ½λλ§μΌλ‘ μ½κ²μ½κ² μ€λͺ νλ €κ³ λ Έλ ₯ν΄λ³Όκ²μ π’