해당 블로그를 참고했다.
조합
어떻게하면 쉽게 적게
비교할 수 있을까?
주의사항
자릿수만 맞춰주기 위해 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)))