우리는 모두 다른 멋진 정렬 알고리즘을 알고 있지만, 발음하기 쉬운 방식으로 숫자를 제공하지는 않습니다. 이를 해결하기 위해 숫자 목록을 정렬하는 가장 자연스러운 방법 인 PronunciationSort ™를 사용하는 것이 좋습니다.
발음
숫자를 발음하는 공식 규칙 (이 문제에서)은 숫자가 하나씩 발음되고 결과 문자열이 사전 순서대로 정렬됩니다. 예를 들어, 이것은 숫자 845
가 발음 "eight four five"
되고 그에 따라 정렬되어야 함을 의미합니다 .
음수
음수는 단어 앞에 붙임으로써 발음됩니다 "minus"
. 따라서 -23
로 발음됩니다 "minus two three"
. 이로 인해 4
(4)와 9
(9)로 시작하는 숫자 사이에서 출력 중간에 음수가 종료됩니다 .
GuideSort ™의 공식 단어 순서는 다음과 같습니다.
- 여덟
- 다섯
- 네
- 마이너스
- 아홉
- 하나
- 일곱
- 육
- 세
- 두
- 제로
그건,
8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0
입력
최대 100 개의 요소를 포함하는 범위의 정수 목록입니다 . 문자열 목록으로 입력 할 수 없습니다. 언어가 목록으로 입력을 지원하지 않으면 입력을 별도의 정수로 제공 할 수 있습니다.
입력에 유효하지 않은 숫자 또는 0으로 시작하는 숫자가 포함되지 않습니다 (숫자 0 자체 제외). 입력은 일반적으로 정렬되지 않으며 임의의 순서로 제공 될 수 있습니다.
산출
PronunciationSort ™ 순서의 동일한 정수. 정렬을 위해서는 숫자를 발음으로 만 변환해야하며 출력에는 문자열이 포함되어서는 안됩니다.
예
예를 들어, 중간 단계 (괄호로 묶음)는 가이드 역할 만하며 출력의 일부가 아닙니다.
[1, 2, 3] -> (['one', 'two', 'three']) -> [1, 3, 2]
[-1, 0, 1, 2] -> (['minus one', 'zero', 'one', 'two']) -> [-1, 1, 2, 0]
[-100, 45, 96] -> (['minus one zero zero', 'four five', 'nine six']) -> [45, -100, 96]
[11, 12, 13, 134, 135] -> (['one one', 'one two', 'one three', 'one three four', 'one three five']) -> [11, 13, 135, 134, 12]