Java
[백준 5052] 전화번호 목록 (JAVA)
iheeeee6-6
2023. 7. 19. 11:07
728x90
https://www.acmicpc.net/problem/5052
5052번: 전화번호 목록
첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가
www.acmicpc.net
정렬을 사용하여 문제를 해결할 수 있었다!
처음에 제출했을때 왜맞틀이라 당황했지만
1
2
1
21
와 같은 반례가 존재한다.
두번째 숫자가 12일 경우에는 NO이지만 21이기때문에 YES이다.
따라서 .startWith()를 사용하여 구분하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for(int i=0;i<t;i++) {
int n=Integer.parseInt(br.readLine());
String[] str = new String[n];
String result="YES";
for(int j=0;j<n;j++) {
str[j]=br.readLine();
}
Arrays.sort(str);
for(int z=0;z<n-1;z++) {
if(str[z].length()>str[z+1].length()) continue;
if(str[z+1].startsWith(str[z])) {
result="NO";
break;
}
}
System.out.println(result);
}
}
}