문제출처: https://programmers.co.kr/learn/courses/30/lessons/42577?language=python3
접근법
각 번호를 dict에 넣은 뒤 현재 내가 참조하는 k번째 문자열 원소 길이 1 ~ len(k)-1 까지 dict에 존재한다면 접두어가 존재한다는 것이다.
알고리즘은 매우 간단하지만 이는 주어진 리스트를 정렬하지 않는다면 내가 참조하는 문자열의 길이를 오름차순으로 확인하는 것을 보장할 수 없기 때문에 정렬이 필수적이다.
코드
def solution(phone_book):
answer = True
d = {}
phone_book.sort()
for p in phone_book:
d[p] = 1
for i in range( len(p) ):
if( p[:i] in d ):
return False
return answer