프로그래머스의 해싱 파트에서 같은 문제가 존재하지만, 그쪽은 시간 제한이 굉장히 타이트하기때문에 해싱을 사용하는 방식으로 밖에 풀 수 없었는데, 백준에서는 시간제한이 굉장히 여유로워서 단순히 StartWith 메서드나 문자열 비교로도 풀 수 있을듯하다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Set;
import java.util.StringTokenizer;
public class BOJ_5052_전화번호목록 {
static List<String> str = new ArrayList<>();
static Set<String> set = new HashSet<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = stoi(br.readLine());
loop: for (int tc = 1; tc <= T; tc++) {
str.clear();
set.clear();
int n = stoi(br.readLine());
for (int i = 0; i < n; i++) {
str.add(br.readLine());
}
str.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.length() - o1.length();
}
});
for (String s : str) {
if (!set.isEmpty()) {
if (set.contains(s)) {
System.out.println("NO");
continue loop;
}
}
for (int i = 0; i < s.length(); i++) {
set.add(s.substring(0, i));
}
}
System.out.println("YES");
}
}
private static int stoi(String s) {
return Integer.parseInt(s);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 14499번 (JAVA) 주사위굴리기 (0) | 2021.04.21 |
---|---|
백준 14503번 (JAVA) 로봇 청소기 (0) | 2021.04.21 |
백준 14425번 (JAVA) 문자열 집합 (0) | 2021.04.21 |
백준 10158번 (JAVA) 개미 (0) | 2021.04.19 |
백준 1012번 (JAVA) 유기농배추 (0) | 2021.04.19 |