μ½λ© ν μ€νΈ μ°μ΅ - 2019 μΉ΄μΉ΄μ€ κ°λ°μ κ²¨μΈ μΈν΄μ
<νν>
λ¬Έμ μ€λͺ
μ μ μλ μλμ μμ μλ μ΄κ±° λλ μ΄λ€ μμλ₯Ό λ°λ₯΄λ μμλ€μ λͺ¨μμ νν(tuple)μ΄λΌκ³ ν©λλ€. nκ°μ μμλ₯Ό κ°μ§ ννμ n-νν(n-tuple)μ΄λΌκ³ νλ©°, λ€μκ³Ό κ°μ΄ ννν μ μμ΅λλ€.
(a1, a2, a3, ..., an)
ννμ λ€μκ³Ό κ°μ μ±μ§μ κ°μ§κ³ μμ΅λλ€.
1. μ€λ³΅λ μμκ° μμ μ μμ΅λλ€. ex : (2, 3, 1, 2)
2. μμμ μ ν΄μ§ μμκ° μμΌλ©°, μμμ μμκ° λ€λ₯΄λ©΄ μλ‘ λ€λ₯Έ ννμ λλ€. ex : (1, 2, 3) ≠ (1, 3, 2)
3. ννμ μμ κ°μλ μ νν©λλ€.
μμμ κ°μκ° 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 μ΄νμΈ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λλ€.
λ¬Έμ νμ΄
- my solution
def solution(s):
answer = []
s=s[1:len(s)-1] # ν°λ°μ΄ν μ κ±°
result=[]
val=''
for j in range(len(s)):
i=s[j]
if i=='{':
temp=[]
elif i.isdigit(): #μ«μμ΄λ©΄
val+=i
elif i==',' and len(val)!=0: #κ΄νΈ μμ μΌνμ΄λ©΄
temp.append(val)
val=''
elif i=='}':
if len(val)!=0: #λ§μ§λ§ μ«μκ° λ¨μμμΌλ©΄
temp.append(val)
val=''
result.append(temp)
result.sort(key=lambda x:len(x)) #κΈΈμ΄ μμΌλ‘ μ λ ¬
# λ°λ³΅λ¬Έ_κ°μ΄ answerμ μμΌλ©΄ μΆκ°
for i in result:
for j in i:
if int(j) not in answer:
answer.append(int(j))
return answer
λ€ νκ³ λ€μ μ½λλ₯Ό 보λ μ‘°κΈ λ³΅μ‘νκ² νΌ κ² κ°λ€..
1) μμ λ§λ€ λΆλ¦¬ν΄μ£ΌκΈ° μν΄ ν° λ°μ΄νλ‘ λλ¬μΈμΈ κ²μ μ κ±°
2) λ°λ³΅λ¬Έμ λλ©° { }μ , λ₯Ό μ¬μ©νμ¬ κ° μμλ₯Ό ꡬλΆ
3) κΈΈμ΄ μμΌλ‘ μ λ ¬
4) κΈΈμ΄ μμΌλ‘ μ λ ¬ν κ²μ λ°λ³΅λ¬Έμ μ¬μ©νμ¬ answer λ°°μ΄κ³Ό λΉκ΅νμ¬ μλ κ°λ§ μΆκ°
μκ°π€
μ²μμ λ¬Έμ λ₯Ό 보며 μκ°ν΄λΈ κ²μ ifλ¬Έμ μ¬μ©νμ¬ νλνλ νλ³ν΄μ£Όλ κ²μ΄λ€.
λ μ§§κ³ κ°κ²°νκ² ν μ μμ κ² κ°μλ° μμ§ μκ°μ λμ§ μλλ€ π₯
λ΄κ° μκ°νκΈ°μ μ΄ λ¬Έμ μ ν¬μΈνΈλ
1) split νλ λ°©λ²
2) μμμ μ 무 νλ³
μΈ κ² κ°λ€.
μΆμ²: νλ‘κ·Έλλ¨Έμ€ μ½λ© ν μ€νΈ μ°μ΅, https://programmers.co.kr/learn/challenges
'πAlgorithm > π₯programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[programmers] κ΄νΈ λ³ν - 2020 KAKAO BLIND RECRUITMENT (0) | 2021.09.06 |
---|---|
[programmers] [3μ°¨] νμΌλͺ μ λ ¬ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.09.04 |
[programmers] μ΄μ€μ°μ μμν (0) | 2021.08.25 |
[programmers] μ μ μΌκ°ν (0) | 2021.08.23 |
[programmers] νκ² λλ² (0) | 2021.04.04 |