문제 원본 : https://www.acmicpc.net/problem/5052
5052번: 전화번호 목록
첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가
www.acmicpc.net
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
String[] numbers = null;
boolean isSucc;
StringBuilder builder = new StringBuilder();
while (t-- > 0) {
int n = Integer.parseInt(br.readLine());
numbers = new String[n];
for (int i = 0; i < n; ++i) {
numbers[i] = br.readLine();
}
Arrays.sort(numbers);
isSucc = true;
for (int i = 1; i < n; ++i) {
if (numbers[i].startsWith(numbers[i - 1])) {
isSucc = false;
break;
}
}
if (isSucc) {
bw.write("YES\n");
} else {
bw.write("NO\n");
}
}
bw.write(builder.toString());
bw.close();
br.close();
}
}
- 정렬 문제
- 문자열로 정렬을 하면 바로 앞 문자열이 뒷 문자열의 접두어인지만 확인하면 해결된다.
'알고리즘 > BOJ' 카테고리의 다른 글
| [BOJ] 5397. 키로거 (0) | 2022.04.24 |
|---|---|
| [BOJ] 2075. N번째 큰 수 (0) | 2022.04.23 |
| [BOJ] 9935. 문자열 폭발 (0) | 2022.04.21 |
| [BOJ] 17413. 단어 뒤집기 2 (0) | 2022.04.20 |
| [BOJ] 1051. 숫자 정사각형 (0) | 2022.04.10 |