728x90
또.. 기믹 알아야 되는 문제
완전탐색은 당연히 안되고
그냥 붙어 있는 두개의 문자들중 앞에 있는 문자가 뒤에 있는 문자의 접두어인지만 확인하면 된다.
(문자배열은 오름차순으로 sort된 상태에서)
만약에 1개라도 그런 경우가 존재한다면 반드시 false를 반환할 수 밖에 없음
접두어라는 것은 필연적으로 서로 붙어 있을 수밖에 없음.. 그 두개의 문자 사이에 무언가가 있을 수는 있음
근데 그것 또한 앞뒤가 접두어 관계여야함 반드시 그 사실을 알면 쉬움
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class Main {
private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException{
int T = stoi(br.readLine());
Loop1:
for(int i=0; i<T; i++) {
int n = stoi(br.readLine());
String[] arr = new String[n];
for(int j=0; j<n; j++) {
arr[j] = br.readLine();
}
Arrays.sort(arr);
for(int j=0; j<n-1; j++) {
if(arr[j+1].startsWith(arr[j])) {
System.out.println("NO");
continue Loop1;
}
}
System.out.println("YES");
}
// bw.write("");
// bw.flush();
// bw.close();
}
private static int stoi(String input) {
return Integer.parseInt(input);
}
}
|
cs |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 16916번 부분 문자열 (문자열, KMP) (0) | 2021.09.21 |
---|---|
[백준][Java] 1786번 찾기 (문자열, KMP) (0) | 2021.09.21 |
★ [백준][Java] 9935번 문자열 폭발 (문자열) (0) | 2021.09.20 |
[백준][Java] 1212번 8진수 2진수 (문자열) (0) | 2021.09.20 |
[백준][Java] 11656번 접미사 배열 (문자열) (0) | 2021.09.20 |