시리얼 번호

면접 대비

시간 제한2초메모리 제한128 MB

요약
길이, 숫자 합, 그리고 숫자가 문자보다 앞서는 사전식 순서를 기준으로 시리얼 번호를 정렬합니다.
난이도

쉬움10점 중 3점

유형
정렬, 문자열, 구현
정답자
아직 제출이 없습니다

문제

다솜이는 여러 대의 기타를 가지고 있고, 각 기타에는 서로 다른 시리얼 번호가 붙어 있다. 원하는 기타를 빠르게 찾기 위해 시리얼 번호를 정해진 규칙에 따라 정렬하려고 한다.

모든 시리얼 번호는 알파벳 대문자(A-Z)와 숫자(0-9)로만 이루어진다.

시리얼 번호 A가 시리얼 번호 B보다 앞에 오는 조건은 다음과 같다.

  1. A와 B의 길이가 다르면, 더 짧은 시리얼 번호가 먼저 온다.
  2. 길이가 같으면 각 시리얼 번호에 포함된 숫자들의 합을 비교한다. 숫자의 합이 더 작은 시리얼 번호가 먼저 온다. 이때 합에는 숫자인 문자만 포함한다.
  3. 위 두 조건으로도 순서가 정해지지 않으면 사전순으로 비교한다. 이 비교에서 숫자는 알파벳보다 앞선다.

시리얼 번호들이 주어졌을 때, 위 규칙에 따라 정렬해 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다.

둘째 줄부터 N개의 줄에는 시리얼 번호가 한 줄에 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어져 있다. 같은 시리얼 번호는 주어지지 않는다.

출력

정렬한 시리얼 번호를 첫째 줄부터 한 줄에 하나씩, 총 N개의 줄에 출력한다.

예제4

  1. 예제 1

    입력
    5
    ABCD
    145C
    A
    A910
    Z321
    
    예상 출력
    A
    ABCD
    Z321
    145C
    A910
    
  2. 예제 2

    입력
    2
    Z19
    Z20
    
    예상 출력
    Z20
    Z19
    
  3. 예제 3

    입력
    4
    34H2BJS6N
    PIM12MD7RCOLWW09
    PYF1J14TF
    FIPJOTEA5
    
    예상 출력
    FIPJOTEA5
    PYF1J14TF
    34H2BJS6N
    PIM12MD7RCOLWW09
    
  4. 예제 4

    입력
    5
    ABCDE
    BCDEF
    ABCDA
    BAAAA
    ACAAA
    
    예상 출력
    ABCDA
    ABCDE
    ACAAA
    BAAAA
    BCDEF