첫 시도
- 입력받은 값을 key로 하여 map 생성
- 입력 값의 서브스트링 길이를 늘려가면서 map에 서브스트링과 동일한 키가 있는지 반복
- phone_book배열의 길이를 N, 각 전화번호의 길이를 M이라고 했을때 시간 복잡도는 O(NM)이다 -> 10^6 * 2 * 10
해결
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.*;
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
Map<String, String> map = new HashMap<>();
for(int i = 0; i < phone_book.length; i++) {
map.put(phone_book[i], "prefix");
}
for(String s : phone_book) {
for(int i = 1; i < s.length(); i++) {
if(map.containsKey(s.substring(0, i))) {
return false;
}
}
}
return answer;
}
}