import sys
input = sys.stdin.readline
n = int(input())
codes = [0 for _ in range(n)]
def total(code):
score=0
for x in code:
if x.isalpha():
continue
else :
score+=int(x)
return score
for i in range(n):
codes[i] = input().rstrip() #시리얼번호 입력받기
codes.sort(key = lambda x:(len(x),total(x),x))#길이,합,사전순
for code in codes:
print(code)
import sys
input = sys.stdin.readline
n = int(input())
codes = [0 for _ in range(n)]
def total(code):
score=0
for x in code:
if x.isdigit():
score+=int(x)
return score
for i in range(n):
codes[i] = input().rstrip() #시리얼번호 입력받기
codes.sort(key = lambda x:(len(x),total(x),x))#길이,합,사전순
for code in codes:
print(code)
시간은 같게 뜬다.
codes리스트에 기타 시리얼 번호를 입력받고
정렬을 진행해주는데 sort 함수의 key를 lambda형식으로 받아서 진행한다
람다로 전달해주면 위의 순서대로 정렬을 진행한다.
그렇기에 길이순으로 정렬을 진행하고 total 즉, 합순으로 정렬하고 마지막으로 사전순 정렬을 진행하게 된다.
람다함수의 매력이란...