[νλ‘κ·Έλλ¨Έμ€] νν/ νμ΄μ¬/ Python/ 2019 μΉ΄μΉ΄μ€ κ°λ°μ κ²¨μΈ μΈν΄μ
π‘solutions )
β ',{'λ₯Ό κΈ°μ€μΌλ‘ μ§ν©λ³λ‘ λμ΄μ€λ€(split)
β λ¬Έμ κΈΈμ΄λ₯Ό κΈ°μ€μΌλ‘ μ λ ¬νλ€(sort)
β μ§ν©μ λ€μ΄ μλ μμλ€μ κΊΌλ΄μ΄ μ«μμΈ κ²½μ°μλ answerμ μλ μ§ νμΈ ν μμΌλ©΄ λ΄μμ€λ€.
β
λ€λ₯Έ μ¬λ νμ΄λ₯Ό μ°Ύμλ³΄λ€ λ³΄λ, μ κ· ννμμ νμ©ν κ²½μ°κ° μμλ€. νμ΄μ¬μ re(regular expression) λͺ¨λμ μ¬μ©, findall() λ©μλλ₯Ό ν΅ν΄ λ¬Έμμ΄μ κ²μν μ μλ€. μ΄ λ¬Έμ μμλ iλ₯Ό λ°λ‘ re.findall("\d+", i)λ‘ ννν΄ μ«μκ°λ€λ§ μ°Ύμμ 리μ€νΈμ λ΄μμ€ μ μλ€.
π«code )
def solution(s):
answer = []
a = s.split(',{')
a.sort(key = len)
tmp = ''
for i in a:
for k in i:
if k == ',':
if int(tmp) not in answer:
answer.append(int(tmp))
tmp = ''
elif k !='{' and k != '}':
tmp += k
else:
if int(tmp) not in answer:
answer.append(int(tmp))
tmp = ''
return answer
π description )
λ¬Έμ μΆμ² : https://programmers.co.kr/learn/courses/30/lessons/64065
μ½λ©ν μ€νΈ μ°μ΅ - νν
"{{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 ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
[μ νμ¬ν]
- sμ κΈΈμ΄λ 5 μ΄μ 1,000,000 μ΄νμ λλ€.
- sλ μ«μμ '{', '}', ',' λ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- μ«μκ° 0μΌλ‘ μμνλ κ²½μ°λ μμ΅λλ€.
- sλ νμ μ€λ³΅λλ μμκ° μλ ννμ μ¬λ°λ₯΄κ² νννκ³ μμ΅λλ€.
- sκ° νννλ ννμ μμλ 1 μ΄μ 100,000 μ΄νμΈ μμ°μμ λλ€.
- return νλ λ°°μ΄μ κΈΈμ΄κ° 1 μ΄μ 500 μ΄νμΈ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λλ€.
[μ μΆλ ₯ μ]
sresult
"{{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] "{{20,111},{111}}" [111, 20] "{{123}}" [123] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] μ μΆλ ₯ μμ λν μ€λͺ μ μΆλ ₯ μ #1
λ¬Έμ μμμ κ°μ΅λλ€.
μ μΆλ ₯ μ #2
λ¬Έμ μμμ κ°μ΅λλ€.
μ μΆλ ₯ μ #3
(111, 20)μ μ§ν© κΈ°νΈλ₯Ό μ΄μ©ν΄ νννλ©΄ {{111}, {111,20}}μ΄ λλ©°, μ΄λ {{20,111},{111}}κ³Ό κ°μ΅λλ€.
μ μΆλ ₯ μ #4
(123)μ μ§ν© κΈ°νΈλ₯Ό μ΄μ©ν΄ νννλ©΄ {{123}} μ λλ€.
μ μΆλ ₯ μ #5
(3, 2, 4, 1)μ μ§ν© κΈ°νΈλ₯Ό μ΄μ©ν΄ νννλ©΄ {{3},{3,2},{3,2,4},{3,2,4,1}}μ΄ λλ©°, μ΄λ {{4,2,3},{3},{2,3,4,1},{2,3}}κ³Ό κ°μ΅λλ€.