λ¬Έμ μ€λͺ
μ μμλ μλμ μμμλ μ΄κ±° λλ μ΄λ€ μμλ₯Ό λ°λ₯΄λ μμλ€μ λͺ¨μμ νν(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 ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
[μ νμ¬ν]
- sμ κΈΈμ΄λ 5 μ΄μ 1,000,000 μ΄νμ λλ€.
- sλ μ«μμ '{', '}', ',' λ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- μ«μκ° 0μΌλ‘ μμνλ κ²½μ°λ μμ΅λλ€.
- sλ νμ μ€λ³΅λλ μμκ° μλ ννμ μ¬λ°λ₯΄κ² νννκ³ μμ΅λλ€.
- sκ° νννλ ννμ μμλ 1 μ΄μ 100,000 μ΄νμΈ μμ°μμ λλ€.
- return νλ λ°°μ΄μ κΈΈμ΄κ° 1 μ΄μ 500 μ΄νμΈ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λλ€.
νμ΄ μ½λ
def solution(s):
s = '[' + s[1:-1] + ']'
a = eval(s)
a.sort(key=len)
if len(a) == 1:
return [a[0].pop()]
answer = []
for i in range(len(a)):
if i == 0:
tmp_set = a[0] - set()
else:
tmp_set = a[i] - a[i-1]
answer.append(tmp_set.pop())
return answer
λ¬Έμμ΄ μ²λ¦¬μ μ§ν©μ μ΄μ©ν΄ λ¬Έμ λ₯Ό ν΄κ²°νλ€.
λ¬Έμμ΄ sλ₯Ό μ§ν©μ΄ λ΄κΈ΄ 리μ€νΈλ₯Ό λνλ΄λ λ¬Έμμ΄λ‘ λ³κ²½νκ³ , eval ν¨μλ‘ ν΄λΉ κ°μ²΄λ₯Ό aλ‘ μμ±νλ€.
κ·Έ λ€μ κΈΈμ΄ μμΌλ‘ μ λ ¬μμΌ°λ€.
리μ€νΈ λ΄λΆλ₯Ό λλ©°, μ°¨μ§ν©μ μ΄μ©ν΄ μ΄μ μ§ν©μ μλ μλ‘μ΄ μμλ₯Ό answer 리μ€νΈμ μΆκ°νλ€.
μλ₯Ό λ€μ΄, μ΄μ μ§ν©μ΄ {2}, μ΄λ² μ§ν©μ΄ {3, 2} μ΄λΌλ©΄, 3μ΄ μλ‘μ΄ μκ²ΌμΌλ―λ‘ answerμ 3μ μΆκ°νλ€.
+ μΆκ°μ μΌλ‘ μ’μ μμ΄λμ΄
κ²°λ‘ μ μΌλ‘ λ¬Έμ μ νΉμ± μ, a1μ λͺ¨λ μ§ν©μ ν¬ν¨λμ΄ μμΌλ κ°μ₯ λ§μ΄ μΆννμ κ²μ΄κ³ , anμ μ§ν© νλμλ§ ν¬ν¨λμ΄ μμΌλ κ°μ₯ μ κ² μΆννμ κ²μ΄λ€.
λ°λΌμ λ¬Έμμ΄μμ μ«μλ§ λ½μ Counterλ‘ μ«μλ₯Ό μΌ ν, countingμ΄ λ§μ μμΌλ‘ μ λ ¬ν΄ κ²°κ³Όλ₯Ό μ»λ λ°©λ²μ΄ μλ€.
'π μ½λ©ν μ€νΈ λλΉ : PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] κΈ°λ₯κ°λ° (level2, python) (1) | 2022.09.10 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] μμ₯ (level2, python) (0) | 2022.09.10 |
[νλ‘κ·Έλλ¨Έμ€] κ΄νΈ νμ νκΈ° (level2, python) (0) | 2022.09.09 |
[νλ‘κ·Έλλ¨Έμ€] μ΄μ€μ°μ μμν (level3, python) (0) | 2022.09.09 |
[νλ‘κ·Έλλ¨Έμ€] μ μ μΌκ°ν (level3, python) (0) | 2022.09.09 |