[백준] 1431. 시리얼 번호

원숭2·2022년 1월 19일
0

백준

목록 보기
8/54

문제

풀이

  1. ord 함수를 통한 숫자 / 문자 판별 후, 합을 기존 배열에 추가하여 arr을 다시 만들어줌.
  2. 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()

0개의 댓글