[μ€μννΈ μκ³ λ¦¬μ¦] νλ‘κ·Έλλ¨Έμ€: νν
λ¬Έμ
μ½λ©ν μ€νΈ μ°μ΅ - νν
"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]
programmers.co.kr
λ¬Έμ μ€λͺ
μ μμλ μλμ μμμλ μ΄κ±° λλ μ΄λ€ μμλ₯Ό λ°λ₯΄λ μμλ€μ λͺ¨μμ νν(tuple)μ΄λΌκ³ ν©λλ€. nκ°μ μμλ₯Ό κ°μ§ ννμ n-νν(n-tuple)μ΄λΌκ³ νλ©°, λ€μκ³Ό κ°μ΄ ννν μ μμ΅λλ€.
- (a1, a2, a3, ..., an)
ννμ λ€μκ³Ό κ°μ μ±μ§μ κ°μ§κ³ μμ΅λλ€.
- μ€λ³΅λ μμκ° μμ μ μμ΅λλ€. ex : (2, 3, 1, 2)
- μμμ μ ν΄μ§ μμκ° μμΌλ©°, μμμ μμκ° λ€λ₯΄λ©΄ μλ‘ λ€λ₯Έ ννμ λλ€. ex : (1, 2, 3) ≠ (1, 3, 2)
- ννμ μμ κ°μλ μ νν©λλ€.
μμμ κ°μκ° nκ°μ΄κ³ , μ€λ³΅λλ μμκ° μλ νν (a1, a2, a3, ..., an)μ΄ μ£Όμ΄μ§ λ(λ¨, a1, a2, ..., anμ μμ°μ), μ΄λ λ€μκ³Ό κ°μ΄ μ§ν© κΈ°νΈ '{', '}'λ₯Ό μ΄μ©ν΄ ννν μ μμ΅λλ€.
- {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}
μλ₯Ό λ€μ΄ ννμ΄ (2, 1, 3, 4)μΈ κ²½μ° μ΄λ
- {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
μ κ°μ΄ ννν μ μμ΅λλ€. μ΄λ, μ§ν©μ μμμ μμκ° λ°λμ΄λ μκ΄μμΌλ―λ‘
- {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
- {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}}
- {{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}}
λ λͺ¨λ κ°μ νν (2, 1, 3, 4)λ₯Ό λνλ λλ€.
νΉμ ννμ νννλ μ§ν©μ΄ λ΄κΈ΄ λ¬Έμμ΄ sκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, sκ° νννλ ννμ λ°°μ΄μ λ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
νμ΄
λ¬Έμ μμ μ€λ³΅λλ μμκ° μλ ννμ
- {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}
μ΄λ κ² ννν μ μλ€λ κ²μμ ννΈλ₯Ό μ»μμ΅λλ€. μμλ₯Ό μ μ μκΈ° λλ¬Έμ a1,...,anμ λλ¬ν λκΉμ§ μμκ° νλμλ κ²λΆν° μ°¨λ‘λλ‘ μ»μ΄λ΄λ©΄ μμμ μμλ₯Ό μμλΌ μ μμ΅λλ€. μλ₯Ό λ€μ΄,
- {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}}
μ κ²½μ°λ₯Ό μκ°ν΄λ³΄κ² μ΅λλ€.
- μμκ° νλλΏμΈ {2}λ₯Ό λ½μλ΄κ³ μμλ₯Ό κΊΌλ΄ μ λ΅ λ°°μ΄μ λ£μ΅λλ€. [2]
- 2μ μμλ₯Ό μμλμΌλ 2κ° ν¬ν¨λμ΄μλ {2, 1} μ μ¬μ©νλ©΄ 1μ μμλ μ μ μμ΅λλ€. μ€λ³΅λλ 2λ λ£μ§ μκ³ 1λ§ μ λ΅ λ°°μ΄μ λ£μ΅λλ€. [2, 1]
- 2μ 1μ ν¬ν¨νλ λ€μ ννμΈ {2, 1, 3}μ μ¬μ©νλ©΄ [2, 1, 3] μ μ»μ μ μμ΅λλ€.
- κ·Έλ¦¬κ³ λ§μ§λ§μΌλ‘ {2, 1, 3, 4}λ₯Ό μ¬μ©νλ©΄ [2, 1, 3, 4]λ₯Ό μ»κ²λ©λλ€.
κ²°κ΅ μ£Όμ΄μ§λ λ¬Έμμ΄μ ννλ¨μλ‘ λΆλ¦¬ν λ€μ, λ΄λΆμ μμμ κ°μκ° μμ κ²λΆν° μ€λ³΅λμ§ μκ² μ°¨λ‘λλ‘ μ λ΅λ°°μ΄μ λ£μ΄μ£Όλ κ²μΌλ‘ μ λ΅μ ꡬν μ μμ΅λλ€.