리스트를 받으면 큰 순으로 번갈아가며 끝에서부터 두 숫자에 붙힌다.
큰 순으로만 붙힌다면 순서는 상관없다.
0을 처리할 때는
길이가 짧은 것부터 0을 붙히는데, 0은 2번째 자리에, index로 치면 1번 index에 붙힌다.
짧은 것부터 붙히는 이유는 123, 24가 있고 0이 3개 있다고 할때 긴 것부터 붙히면 10023, 204가 되고
짧을 것부터 붙히면 1023 2004가 되어 후자가 더 작다.
어느 언어나 나는 문자열 처리를 잘 못해서 코드가 깔끔하지는 않다
while True:
numlist = list(map(int, input().split()))
if (len(numlist) == 1) & (numlist[0] == 0):
break
num1 = ""
num2 = ""
del numlist[0]
numlist.sort(reverse=True)
zerolist = []
while len(numlist) != 0:
if numlist[0] == 0:
zerolist.append(0)
del numlist[0]
continue
num1 = num1.split()
num1.insert(0,str(numlist[0]))
num1 = ''.join(num1)
del numlist[0]
if len(numlist) != 0:
if numlist[0] == 0:
zerolist.append(0)
del numlist[0]
continue
else:
num2 = num2.split()
num2.insert(0,str(numlist[0]))
num2 = ''.join(num2)
del numlist[0]
while len(zerolist) != 0:
num2 = list(num2)
num2.insert(1,str(zerolist[0]))
num2 = ''.join(num2)
del zerolist[0]
if len(zerolist) != 0:
num1 = list(num1)
num1.insert(1,str(zerolist[0]))
num1 = ''.join(num1)
del zerolist[0]
print(int(num1)+int(num2))