Strong Root

난이도

 

문제를 보시려면 여기를 클릭

 

 

 

힌트

저는 빅오를 최대한 낮춰보려고 모든 prefix 를 hash map 에 담아서 체크했습니다.

친구는 이렇게까지 안했는데도 통과되네요. 입력크기가 작아서 그런듯합니다.

 

 

 

이하는 코드입니다.

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
import java.util.HashMap;
import java.util.Map;
 
public class Solution {
    public boolean solution(String[] phone_book) {
        Map<String, Integer> prefixMap = new HashMap<>();
 
        for (String phoneNo : phone_book) {
            for (int i = 1; i <= phoneNo.length(); i++) {
                String prefix = phoneNo.substring(0, i);
 
                Integer count = prefixMap.get(prefix);
 
                if (count == null) {
                    prefixMap.put(prefix, 1);
                } else {
                    prefixMap.put(prefix, count + 1);
                }
            }
        }
 
        for (String phoneNo : phone_book) {
            Integer count = prefixMap.get(phoneNo);
 
            if (count > 1) {
                return false;
            }
        }
 
        return true;
    }
}
cs