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]))

'Algorithm' 카테고리의 다른 글

[백준 1987] 알파벳  (0) 2024.09.17
[백준 1922] 네트워크 연결  (0) 2024.09.17
[백준 1092] 배  (0) 2024.09.17
[백준 5014] 스타트링크  (0) 2024.09.02
[백준 13023] ABCDE  (0) 2024.09.01