노말 정렬
시간 제한1초메모리 제한128 MB
문자열 안의 숫자 구간을 부호까지 고려해 수치로 비교하고 문자는 대소문자를 무시하는 커스텀 정렬 비교 함수를 구현해 여러 문자열 쌍의 순서를 판정하는 문제입니다.
문제
일반적인 사전식 정렬에서는 숫자가 섞인 문자열이 의도한 순서로 놓이지 않을 수 있다. 예를 들어 xyz100은 xyz2보다 앞에 온다. 이 문제에서는 문자열 안의 숫자 구간을 숫자값으로 비교하는 노말 정렬의 비교 함수를 작성한다. 노말 정렬에서는 다음과 같은 순서가 된다.
XYZ001, XYZ2, XYZ003, XYZ08, XYZ23, XYZ100, XYZQ
이 문제의 비교 규칙은 다음과 같이 확장된다.
- 알파벳의 대소문자는 구분하지 않고 모두 대문자로 취급한다.
+또는-가 숫자 바로 뒤에 있지 않고, 그 다음 문자가 숫자라면 이어지는 숫자 구간의 부호로 취급한다. 숫자 바로 뒤에 있는+또는-는 일반 문자로 비교한다.
따라서 123+456+7890은 + 문자로 구분된 세 숫자 구간을 가진 문자열이고, A+003은 A3과 같은 순서로 비교된다.
각 데이터 세트마다 공백 없는 출력 가능한 ASCII 문자열 두 개가 주어진다. 위 규칙으로 두 문자열을 비교하여 첫 번째 문자열이 앞서면 -1, 같은 순서이면 0, 두 번째 문자열이 앞서면 1을 출력한다.
입력
첫째 줄에 데이터 세트 수 N (1 ≤ N ≤ 1000)이 주어진다. 이어지는 N개의 줄에는 비교할 문자열 두 개가 공백 하나로 구분되어 주어진다. 두 문자열에는 공백이 포함되지 않는다.
출력
각 데이터 세트마다 비교 결과 -1, 0, 1 중 하나를 한 줄에 출력한다.