만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

크레용 정렬

시간 제한8초메모리 제한1024 MB

요약
문자열의 문자를 소문자, 대문자, 숫자 순으로 정렬해 출력합니다. 각 그룹 안에서는 오름차순으로 정렬합니다.
난이도

쉬움10점 중 1점

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

문제

요코하마 군은 케이스에 크레용을 넣어 가지고 있다. 크레용의 종류는 한 문자로 표현되며, 영어 소문자, 영어 대문자, 숫자 중 하나이다. 케이스에는 같은 종류의 크레용이 여러 개 들어 있을 수도 있다.

어느 날 케이스에 든 크레용을 가족에게 빌려주었더니, 종류가 뒤섞인 상태로 돌아왔다. 크레용을 깔끔하게 정렬하는 것을 좋아하는 요코하마 군은 다음 순서에 따라 크레용을 다시 정렬하기로 했다.

  • 영어 소문자는 모든 영어 대문자보다 왼쪽에, 영어 대문자는 모든 숫자보다 왼쪽에 놓는다
  • 영어 소문자끼리는 알파벳 순서가 빠른 것을 왼쪽에 놓는다
  • 영어 대문자끼리는 알파벳 순서가 빠른 것을 왼쪽에 놓는다
  • 숫자끼리는 값이 작은 것을 왼쪽에 놓는다

정렬한 뒤 크레용의 배열을 구하라.

입력

입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋은 다음 형식으로 주어진다.

SS

각 데이터셋은 크레용의 배열을 나타내는 문자열 SS 한 줄로 이루어진다. SS의 왼쪽에서 ii번째 문자는 왼쪽에서 ii번째에 들어 있는 크레용의 종류를 나타낸다.

SS의 길이는 1 이상 1,000 이하이며, SS는 영어 소문자, 영어 대문자, 숫자로 이루어진 문자열이다.

입력의 끝은 # 한 줄로 표시한다. 데이터셋은 50개 이하이다.

출력

각 데이터셋에 대해, 정렬한 뒤 크레용의 배열을 나타내는 문자열을 한 줄로 출력하라.

예제1

  1. 예제 1

    입력
    ICPC2023YokohamaRegional
    ICPCJapaneseAlumniGroup
    GoodLuckForAllContestants
    #
    
    예상 출력
    aaaeghiklmnoooCCIPRY0223
    aaeeilmnnopprsuuACCGIJP
    acdekllnnoooorsstttuACFGL