-
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-rivkms #13
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.
κΉμ΄μ°μ νμ DFS
μμ νμ μλ μ°μ°μ backtracking
κ³Ό μκ³ λ¦¬μ¦μΌλ‘ μ΅μ ννλ λ°©λ²μΌλ‘ μ νμ΄νμ κ² κ°μ΅λλ€.
λ€λ§ μλμ½λλ₯Ό c++λ‘ κ΅¬ννλ κ³Όμ μ΄ μ μ΄ν΄λμ§ μμμ λ³μ check
μ λν΄ μ§λ¬Έλ립λλ€.
if(check){ | ||
cnt+=dfs(map, n, k+1); |
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.
μ 쑰건μμ check
κ° true
μΈ κ²½μ° μ¬κ·λ‘ ν¨μκ° λ°λ³΅λλλ° check
κ° μ νμ΄ λ»νλ λ°κ° μ΄λ€μ§ κΆκΈν©λλ€.
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.
ν΄λΉ 쑰건 μμ λ°λ³΅λ¬Έμμ iλ²μ§Έ μ€μ λͺ¨λ μΉΈμ νΈμ λ°°μΉν©λλ€. μ΄ν ν΄λΉ μΉΈμ νΈμ λμμ λ λ¬Έμ κ° μκΈ΄λ€λ©΄ checkλ₯Ό falseλ‘ μ€μ νκ² λ©λλ€.
μ¦, 체μ€νμ μ΄λ€ μΉΈμ νΈμ λ°°μΉν ν μ΄μ μ λ°°μΉλ νΈλ€μ κ³ λ €νμμ λμλ ν΄λΉ 체μ€νμ΄ μ ν¨νμ§ νμΈνλ λ³μλΌκ³ μκ°νμλ©΄ μ’μ κ² κ°μ΅λλ€.
βοΈ μ¬μ€ ν¨μλ₯Ό μ΄μ©νμ¬ ν΄λΉ 체μ€νμ΄ μ ν¨νμ§ νμΈνλ€λ©΄ checkλ₯Ό μ¬μ©νμ§ μκ³ κ΅¬νν μ μμ΅λλ€. κ·Έκ² λ κΉλν μλ μκ³ μπ
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.
λ°±νΈλνΉμ λν΄μ μ‘°κΈμ΄λλ§ κ³΅λΆ ν΄λ³Ό μ μμκ³ , κ·Έκ±Έ μ½λλ‘ κ΅¬ννλ μμ΄λμ΄ μ μ»μ΄κ°λλ€. λ°±νΈλνΉ κ³΅λΆν λκ° μ€λ©΄ μ°Έκ³ ν΄μ κ³΅λΆ ν΄λ³΄κ² μ΅λλ€. μ λ 벨 κΈ°μ€μΌλ‘ μμ§μ λ§μ΄ μ΄λ ΅λ€μ.. μκ³ νμ ¨μ΅λλ€.
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.
볡μ¬νλκ±Έ μ¬κ·λ‘ λλ €μ λ¬Έμ κ° λ°μνκ΅°μ.. μΌμ°¨μ λ°°μ΄λ‘ νΈλ λ°©λ²μ λν΄μλ μκ³ μμλλ° μ΄λ²μλ λ무 μ§κ΄μ μΌλ‘ μ κ·Όνλκ² κ°μ΅λλ€. λ€μ λμκΈ°κ³ κ°λλ€.
π λ¬Έμ λ§ν¬
N-queen
βοΈ μμλ μκ°
5h (μκ³ μλ μ½λκ° μλλΌ λ€λ₯Έ λ°©λ²μ μκ°νλλΌ μκ°μ΄ λ κ±Έλ Έλ€μ...)
π μ²μ λ¬Έμ 보μλ λΆλ€μ ν¨μ¬ μ€λ 걸리μκΈ΄ ν κ±°μμ...!
β¨ μλ μ½λ
: backtracking
βοΈ λ¬Έμ μ€λͺ
체μ€νμμ Queenμ μ, μ, λκ°μ μΌλ‘ 거리μ μκ΄μμ΄ μμ§μΌ μ μμ΄ λ§€μ° μ€μν μν μ ν©λλ€.
μ΄λ² λ¬Έμ λ Nμ΄ μ£Όμ΄μ‘μ λ N*N ν¬κΈ°μ 체μ€νμ Nκ°μ νΈμ μλ‘ μ‘νμ§ μλλ‘ λ°°μΉν μ μλ κ°μλ₯Ό ꡬνλ λ¬Έμ μ λλ€.
μ΄ κ·Έλ¦Όμ 8 * 8 ν¬κΈ°μ 체μ€νμμ 8κ°μ νΈμ λ°°μΉνλ κ²½μ° μ€ ν κ°μ§λ₯Ό 보μ¬μ€λλ€.
μ΄λ¬ν μμΌλ‘ λ§λ€ μ μλ κ²½μ°μ μλ₯Ό μ λΆ μΈλ©΄ λλ κ²μ λλ€.
μ°Έκ³ λ‘ N-Queenμμ κ°λ₯ν κ²½μ°μ μλ λ€μκ³Ό κ°μ΅λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ€μκ³Ό κ°μ΄ μκ°ν μ μμ κ²μ λλ€.
π© 체μ€νμ ν μ€μ© μ΄λνλ©° κ° μΉΈμ νΈμ΄ λ€μ΄κ° μ μλ λͺ¨λ κ²½μ°λ₯Ό κ³ λ €ν΄λ³΄μ
μ΄λ¬ν λ°©λ²μ DFS(Depth-First Search)λΌκ³ ν©λλ€.
μ΄ λ νΈλ¦¬λ₯Ό μ΄μ©νκ² λλ©΄
λ€μκ³Ό κ°μ μμμ λ°λΌ νΈλ¦¬λ₯Ό νμνλ©΄μ μ§ννκ² λκ² μ£ .
π λ¬Έμ μ
μμ κ·Έλ¦Όμμ 9λ²μ΄ μλλ κ²μ μλλ°, 10λ², 11λ²μ μνν΄μΌν κΉ?
DFSλ 10λ²κ³Ό 11λ²μ μνν΄μΌν¨
βμ΄κ²μ μννμ§ μμ μλ μμκΉ?
βοΈ Backtracking : ν΄λ₯Ό μ°Ύλ λμ€ ν΄κ° μλμ΄μ λ§νλ©΄, λλμκ°μ λ€μ ν΄λ₯Ό μ°Ύμκ°λ κΈ°λ².
μ΄ κΈ°λ²μ μ¬μ©νλ©΄ μμ κ·Έλ¦Όμμ 9λ²μ΄ μλλ©΄, 10~11λ²μ μννμ§ μμλ λ©λλ€.
βοΈ κ°μ§μΉκΈ° : λ μ΄μ νμν νμκ° μλ μνλ₯Ό μ μΈνλ κ²
μμ λ΄μ©μ κ°μ§μΉκΈ°λΌκ³ νλ©°, κ°μ§μΉκΈ°λ₯Ό μ΄μ©νμ¬ λΆνμν μ°μ°μ μννμ§ μμ μ μμ΅λλ€.
π ν΅μ¬ sudo code
μμ λ΄μ©μ μ΄μ©νμ¬ ν΅μ¬ μ½λλ₯Ό μ§λ³΄λ©΄
π₯οΈ μ²«λ²μ§Έ μ κ·Όλ²
체μ€νμ 2μ°¨μ λ°°μ΄λ‘ ꡬννμ¬, Queenμ΄ λμ¬μ§ κ²½μ°μλ 1μ, λμ μ μλ κ³³μμλ -1μ μ μ₯νλ€.
μ΄λ₯Ό μ½λλ‘ κ΅¬ννλ©΄ λ€μκ³Ό κ°λ€.
π νμ§λ§...
μκ°μ΄κ³Όκ° λ¨λ©΄μ 무μΈκ° μλͺ»λμμμ κΉ¨λ¬μλ€ γ γ
π’ λ¬Έμ μ
μλ§ λ¬Έμ κ° λλ λΆλΆμ΄ 2μ°¨μ λ°°μ΄μ μλ€κ³ μκ°ν΄λ³΄μμ΅λλ€.
2μ°¨μ λ°°μ΄μ 볡μ¬νλ λΆλΆ, κ·Έκ²μ μ¬κ·λ‘ λλ Έμ λ λ°μνλ λ¬Έμ λΌκ³ μκ°νμ¬ μλ‘μ΄ λ°©λ²μ κ³ μν΄λ³΄μμ΅λλ€.
π₯οΈ λλ²μ§Έ μ κ·Όλ²
2μ°¨μ λ°°μ΄μμλ κ·Έ μΉΈμ λ€μ΄μ¬ μ μλμ§, μλμ§λ₯Ό μ μ₯νμμ§λ§
1μ°¨μ λ°°μ΄μμλ ν΄λΉ κΉμ΄μ μ΄λ€ μΉΈμΌλ‘ λ€μ΄κ°λμ§λ₯Ό μ μ₯ν΄λ³΄μ
βοΈ μμ
μ κ·Έλ¦Όμμλ {4, 1, 3, 6, 2, 7, 5, 0}μ΄ μ μ₯λλλ‘ ν΄λ΄ μλ€.
πμ΄ λ°©λ²μ μ¬μ©νλλ
μ±κ³΅νμλ€μποΈ
π μλ‘κ² μκ²λ λ΄μ©
βοΈ μμμ μ€λͺ ν Backtrackingκ³Ό DFSμ λν΄ μμΈν κ°λ μ μμλ³Ό μ μμμ΅λλ€.
βοΈ μ΄ λ¬Έμ μ κ°μ΄ 2μ°¨μ λ°°μ΄μμ κ°λ₯μ¬λΆλ₯Ό μ μ₯ν κ²½μ°, 1μ°¨μ λ°°μ΄μ μ΄μ©νμ¬ λ ν¨κ³Όμ μΌλ‘ μ½λλ₯Ό 지 μ μλ λ°©λ²μ λ°°μΈ μ μμμ΅λλ€.
βοΈ λ€μ μ½μ΄λ³΄λ PRμ΄ κΈΈκ³ μ½κΈ° νλ€ μλ μκ² λ€κ³ μκ°λ λλλ€. κΈλ‘ νννκ³ μΆμ μκ°μ΄ λ§μμ§λ€λ³΄λ κΈμ΄ λλ¬μμ‘λ€μ... κ·Έλλ κΈ λ€ μ½μ΄μ£Όμ μ κ°μ¬ν©λλ€. π