Algorithm

[백준 1431] 시리얼 번호

moguogu 2024. 9. 17. 16:18

문제 

https://www.acmicpc.net/problem/1431

 

알고리즘

단어의 길이, 숫자의 합, 단어 사전 순으로 내림 차순 정렬이 필요하다 

key = lambda :x 와 sort 함수를 사용하여 구현 할 수 있다 

 

소스코드 

import sys

def digit_sum(cur):
    num_sum = 0
    for x in cur: 
        if '0' <= x <= '9':
            num_sum += int(x)
    return num_sum

N = int(input())
serial = []
for _ in range(N):
    serial.append(list(input()))

serial.sort(key=lambda x:(len(x), digit_sum(x), x)) #문자의 길이, 문자 내 숫자의 합, 알파벳 사전순 정렬
for i in range(N):
    print(''.join(serial[i]))