π
νμ΄μ¬ μκ³ λ¦¬μ¦ μΈν°λ·°
μ± μ μ°Έκ³ νμ΅λλ€.
μ¬λμ λ°°μ΄μ΄ μ 곡λ©λλ€ (λ°λμ μμκ° μλ). κ° μ¬λ [i] = [hi, ki]λ λμ΄ hiμ i λ²μ§Έ μ¬λμ λνλ΄λ©°, νμ¬ μ¬λ μμ hi μ΄μμ λμ΄λ₯Ό κ°μ§ μ¬λμ΄ μ νν kiλͺ μ΄ μμ΅λλ€. μ λ ₯ λ°°μ΄ peopleμ΄ λνλ΄λ νλ₯Ό μ¬κ΅¬μ±νκ³ λ°νν©λλ€. λ°ν λ λκΈ°μ΄μ λ°°μ΄ λκΈ°μ΄λ‘ νμνλμ΄μΌν©λλ€. μ¬κΈ°μ queue [j] = [hj, kj]λ λκΈ°μ΄μμλ j λ²μ§Έ μ¬λμ μμ±μ λλ€ (queue [0]μ λκΈ°μ΄μ 맨 μμμλ μ¬λμ λλ€).
μ λ ¬μ μ¬μ©ν΄μΌ νλ€.
ν° μ«μκ° λ¬΄μ‘°κ±΄ μμ μμΌλ§ νλ€.
-> ν° μ«μλΆν° λ£λλ€.
κ°μ μ«μκ° μ¬λ¬κ°μ΄λ©° κ°μ μ«μλ μμ μ¬ μ μλ€.
-> kκ° μμ μ«μλ₯Ό λ¨Όμ λ£μ΄μΌ κ°μ μ«μλ₯Ό ν¬ν¨νλ©΄μ k쑰건μ λ§μ‘±ν μ μλ€.
λ°λΌμ, λ°°μ΄μ λ΄λ¦Όμ°¨μ μ λ ¬νλ μ«μκ° κ°λ€λ©΄ kλ₯Ό κΈ°μ€μΌλ‘ μ€λ¦μ°¨μ μ λ ¬ν΄μΌ νλ€.
μ λ ¬ ν, μμλλ‘ κΊΌλ΄λ©΄μ kλ²μ§Έ μμΉμ λ£μ΄μ£Όλ©΄ λλ€.
class Solution:
def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:
people = sorted(people, key=lambda x:(-x[0], x[1]))
result = []
for i in range(len(people)):
h, k = people[i]
result.insert(k, [h, k])
return result