728x90
https://www.acmicpc.net/problem/5052
정렬을 사용하여 문제를 해결할 수 있었다!
처음에 제출했을때 왜맞틀이라 당황했지만
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);
}
}
}
'Java' 카테고리의 다른 글
[백준 19701] 소 운전한다. (JAVA) (0) | 2023.08.03 |
---|---|
[백준 1863] 스카이라인 쉬운거 (JAVA) (0) | 2023.08.02 |
[백준 2228] 구간 나누기 (JAVA) (0) | 2023.07.12 |
[백준 1947] 선물 전달 (JAVA) (0) | 2023.07.11 |
[백준 2157] 여행 (JAVA) (0) | 2023.07.11 |