n = int(input())
input_list = []
number_list = [0] * n
for i in range(n):
input_list.append(input())
for i in range(n):
small_string = input_list[i]
j = len(small_string)
sum = 0
for h in range(j):
if small_string[h] >= '1' and small_string[h] <= '9':
sum += int(small_string[h])
number_list[i] = sum
for i in range(0,n-1):
for j in range(i+1, n):
if len(input_list[i]) > len(input_list[j]):
number_list[i],number_list[j] = number_list[j],number_list[i]
input_list[i],input_list[j] = input_list[j], input_list[i]
elif len(input_list[i]) == len(input_list[j]):
if number_list[i] > number_list[j]:
number_list[i],number_list[j] = number_list[j],number_list[i]
input_list[i],input_list[j] = input_list[j], input_list[i]
elif number_list[i] == number_list[j]:
for h in range(len(input_list[i])):
if input_list[i][h] > input_list[j][h]:
input_list[i],input_list[j] = input_list[j], input_list[i]
break
elif input_list[i][h] < input_list[j][h]:
break
코드가 엄청 복잡해보이지만 사실 input_list와 number_list가 전부인 코드이다.
number_list 에는 문자열에 들어있는 숫자들을 리스트 안에 정렬해주었다.
input_list 에는 받은 입력값들을 리스트 안에 넣어주었다.
이중 반복문에서 요구하는 세가지 사항들에 대한 판별을 전부 넣어주었다.
코드를 조금 짧지 못하게 만든 점이 아쉽긴하다.