
해당 블로그를 참고했다.
조합
어떻게하면 쉽게 적게 비교할 수 있을까?
주의사항
자릿수만 맞춰주기 위해 0만 가져다 붙여서는 안된다.
'12','121' -> '1200' , '1210' 이된다.12112가 나오게 되는데 이는 오답이다.'1212','1211' 을 통해 올바른 값을 구해야 한다.int(str(문자열)) 의 이유는 0000을 0으로 바꿔주기 위함이다.
# 블로그를 참고한 풀이
def solution(numbers):
li = []
for nu in numbers:
s = str(nu)
nu = list(s)
i = 0
while len(nu) <= 4:
nu.append(nu[i])
i = (i+1) % len(s)
nu = int("".join(nu))
li.append([nu,s])
li=sorted(li,reverse=True)
print(int("".join([ i[1] for i in li ])))
return str(int("".join([ i[1] for i in li ])))
map을 사용해 str으로 변환 했다.(문자열 * n)은 n 만큼 같은 문자열을 반복한 문자열이다.def solution(numbers):
numbers = list(map(str, numbers))
numbers.sort(key=lambda x: x*3, reverse=True)
return str(int(''.join(numbers)))