OJ
[BOJ] 5052 전화번호 목록 (JAVA)
P3PP4
2023. 2. 11. 10:00
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.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
int T = Integer.parseInt(br.readLine());
t: for (int tc = 0; tc < T; tc++) {
int N = Integer.parseInt(br.readLine());
List<String> input = new ArrayList<>();
for (int i = 0; i < N; i++) {
input.add(br.readLine());
}
Collections.sort(input);
for (int i = 1; i < N; i++) {
if (input.get(i - 1).length() < input.get(i).length()) {
if (input.get(i - 1).equals(input.get(i).substring(0, input.get(i - 1).length()))) {
sb.append("NO\n");
continue t;
}
}
}
sb.append("YES\n");
}
System.out.print(sb.toString());
}
}