# 문제 설명
- 데이터 접근은 딕셔너리로
prefix
계산을O(N)
시간으로 해서 성능이 많이 떨어지는 코드인 것 같다.
class Trie {
private var data: [String: Bool]
init() {
self.data = [:]
}
func insert(_ word: String) {
self.data[word, default: false] = true
}
func search(_ word: String) -> Bool {
self.data[word] ?? false
}
func startsWith(_ prefix: String) -> Bool {
var keys: [String] = []
for (key, value) in self.data {
keys.append(key)
}
for key in keys {
if key.count < prefix.count { continue }
if key[key.startIndex..<key.index(key.startIndex, offsetBy: prefix.count)] == prefix { return true }
}
return false
}
}