문제

풀이
- ord 함수를 통한 숫자 / 문자 판별 후, 합을 기존 배열에 추가하여 arr을 다시 만들어줌.
- sort함수의 key function을 이용함.
- 첫번째 조건(문자열 길이) : len(x[0])
- 두번째 조건(숫자인 것만 더한 자릿수 합) : x[1]
- 세번째 조건(사전 정렬) : x (sort 그대로 활용)
코드
import sys
def serial() :
n = int(input())
arr = [sys.stdin.readline().rstrip() for _ in range(n)]
for i in range(len(arr)) :
sum = 0
for j in range(len(arr[i])) :
if ord(arr[i][j]) in range(48, 58) :
sum += int(arr[i][j])
arr[i] = [arr[i], sum]
arr.sort(key = lambda x : (len(x[0]), x[1], x))
for a in arr :
print(a[0])
serial()