코딩 테스트/Level 4
[3차] 자동완성
컴닥
2022. 12. 4. 00:22
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/17685
class Node:
def __init__(self):
self.count = 0
self.children = {}
class Trie:
def __init__(self):
self.root = Node()
def insert(self, word):
current = self.root
for letter in word:
if letter not in current.children:
current.children[letter] = Node()
current = current.children[letter]
current.count += 1
def search(self, word):
current = self.root
for index, letter in enumerate(word):
current = current.children[letter]
if current.count == 1:
return index + 1
return len(word)
def solution(words):
trie = Trie()
for word in words:
trie.insert(word)
return sum(trie.search(word) for word in words)
반응형