시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 (하단 참고) | 512 MB | 232 | 88 | 52 | 41.935% |
Bob은 문자열 정렬기를 만들어야한다.
문자열은 영문 알파벳 이외에도 붙임표 ('-
')가 들어가는 경우가 있기 때문에 처리가 까다롭다. 이 문제에 한해, 서로 다른 두 문자열 $X$, $Y$의 "사전식" 순서는 아래 규칙에 따라 정한다:
-
')인 경우, 붙임표가 들어간 문자열이 사전순에서 뒤진다. 예를 들어, $X_i$가 붙임표이고 $Y_i$가 붙임표가 아닌 경우, $Y$가 앞선다.예를 들어, 아래와 같은 문자열 쌍을 비교해보자:
Santa-Mar
" 과 $Y = $"Santa-Maria
": 이 경우 규칙 1에 따라 $X$가 앞선다. $X$가 $Y$의 접두사이기 때문이다.San-Francisco
" 와 $Y = $"Santa-Clara
": 이 경우 처음 $3$개의 문자는 같지만 $4$번째 문자가 '-
'와 't
'로 다르다. 규칙 2-1에 따라 $X$가 $Y$에 뒤진다.Seoul
"과 $Y = $"seoul
": 이 경우 규칙 2-2에 따라 "Seoul
"이 앞선다.입력으로 $n$개의 문자열이 주어졌을 때, 위 규칙에 따라 사전식 정렬 후 출력하는 문자열 정렬기를 만들어보자.
첫 줄에 테스트 케이스의 수 $T$가 주어진다.
각 테스트 케이스의 첫 줄에는 $n$이 주어진다. 다음 $n$줄에 걸쳐 각 줄에 문자열이 하나씩 주어진다.
각 테스트 케이스의 정답을 $n$줄에 걸쳐 출력한다. 각 줄에는 사전순으로 정렬된 문자열 하나씩을 순서대로 출력한다.
A
'-'Z
'), 영문 소문자 ('a
'-'z
'), 그리고 붙임표 ('-
') 만을 포함한다4 3 Aa- a-A Aa- 7 San-Francisco Santa-Clara Santa-Clarita San-Luis-Obispo San-Pedro Saint-Paul Saint-Louis 2 Santa-mar Santa-Mar 3 - -- ---
Aa- Aa- a-A Saint-Louis Saint-Paul Santa-Clara Santa-Clarita San-Francisco San-Luis-Obispo San-Pedro Santa-Mar Santa-mar - -- ---
예제 1: "Aa-
" 문자열이 두 번 주어졌으므로 두 번 출력해야 한다. "Aa-
" 와 "a-A
"를 비교하면 첫 글자가 다르므로 규칙 2-2에 따라 "Aa-
"가 사전순으로 앞선다.
예제 2: "Saint-Louis
" 와 "Saint-Paul
" 의 경우 'L
' 이 'P
' 보다 앞선다.
예제 3: "Santa-Mar
" 과 "Santa-mar
"의 경우 'M
' 이 'm
' 보다 앞선다.
예제 4: 추가 설명 없음 (규칙 1 참고)