π
νμ΄μ¬ μκ³ λ¦¬μ¦ μΈν°λ·°
μ± μ μ°Έκ³ νμ΅λλ€.
리μ€νΈλ₯Ό μ λ ¬ν΄μ κ°μ₯ ν°μλ‘ λ§λ€μ΄ λ°ννμΈμ.
μ νμ μΈ μ λ ¬ λ¬Έμ μ΄λ νλμ ν€ κ°μΌλ‘ μν
νλ λ¬Έμ κ° μλμλ€.
μ΄λ€ ν€κ°μΌλ‘ μν
μ ν μ§κ° μ€μν λ¬Έμ
μ¬κΈ°μ ν€ κ°μ λΉκ΅ν λ μμλ₯Ό λν κ°μ΄μλ€
ex) 1. a + b
, 2. b + a
-> b + aκ° λ ν¬λ€λ©΄ μ€μν΄μ€λ€.
λ¦¬ν΄ κ°μ str(int())λ‘ κ°μΈμ£Όλ μ΄μ λ μ λ ₯κ°μ΄ [0, 0] μΌ λ 00 μ΄ μλ 0μ λ°ννκΈ° μν μ²λ¦¬μ΄λ€.
class Solution:
def largestNumber(self, nums: List[int]) -> str:
def check_swap(a, b):
return str(a) + str(b) < str(b) + str(a) # μ€μ ν κ²½μ°κ° λ ν° κ²½μ° (True λ°ν)
i = 1
while i < len(nums):
j = i
while j > 0 and check_swap(nums[j - 1], nums[j]):
nums[j - 1], nums[j] = nums[j], nums[j - 1]
j -= 1
i += 1
return str(int(''.join(map(str,nums))))
μ«μλ₯Ό λ¬Έμλ‘ λ§λλ κ²½μ° νμ μ£Όμν΄μ€μΌ νλ€. (''.join() μ¬μ© μ μ£Όμμ )