π[2019 μΉ΄μΉ΄μ€ κ°λ°μ κ²¨μΈ μΈν΄μ | νν]
μ
μμλ μλμ μμμλ μ΄κ±° λλ μ΄λ€ μμλ₯Ό λ°λ₯΄λ μμλ€μ λͺ¨μμ νν(tuple)μ΄λΌκ³ ν©λλ€. nκ°μ μμλ₯Ό κ°μ§ ννμ n-νν(n-tuple)μ΄λΌκ³ νλ©°, λ€μκ³Ό κ°μ΄ ννν μ μμ΅λλ€.
{{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 ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
from itertools import chain
def solution(s):
answer = []
s = list(chain(*[i.split(",") for i in sorted(s[2:-2].split("},{"), key=len)]))
for num in s :
if int(num) not in answer :
answer.append(int(num))
return answer
λ€μμ κ³Όμ μ λ°λΌ νμ΄νμλ€.
{{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
μ²λΌ μ λμ κ΄νΈκ° λΆμ΄μμΌλ―λ‘ μ λ κ΄νΈλ₯Ό μ κ±°νκ³ , μ¬μ΄μ κ΄νΈλ₯Ό split
μΌλ‘ μ κ±°νλ€. κ·Έλ¦¬κ³ μ§§μ μμλΆν° μ€λ¦μ°¨μμΌλ‘ μ λ ¬νκΈ° μν΄ key=len
μ μ¬μ©νλ€(1) result : ['3', '2,3', '4,2,3', '2,3,4,1']
2.(1)μ κ²°κ³Όμμ μΌνλ₯Ό μ κ±°νκΈ°μν΄ κ° μμμ λΆμ΄μλ ,
μ itertools | chain κ³Ό split(",")
μΌλ‘ μ κ±°νμ¬ λ¦¬μ€νΈμ λ΄μμ€λ€.
(2) result : ['3', '2', '3', '4', '2', '3', '2', '3', '4', '1']
answer
μ μλ€λ©΄ μ μνμΌλ‘ λ³ννμ¬ λ΄μμ£Όκ³ λ¦¬ν΄νλ€.import re
from collections import Counter
def solution(s):
s = Counter(re.findall('\d+', s))
return list(map(int, [k for k, v in sorted(s.items(), key=lambda x: x[1], reverse=True)]))
μ¬μ€ μ κ·ννμμ μ¬μ©νλ €κ³ νλλ°, μμ§μ re
λ©μλ 곡λΆκ° λΆμ‘±ν κ² κ°λ€. μμ λ§μ μ¬λμ μ½λλ₯Ό λ΄μΌ μμΌκ° λμ΄μ§λ κ² κ°λ€!