Programmers

[Programmers / Python 풀이] 전화번호 목록

Hoo_Dev 2023. 1. 4. 11:00
def solution(phone_book):
    answer = True
    dic = {}
    for i in phone_book:
        dic[i] = 0
    
    for j in phone_book:
        search = ''
        for k in j:
            search += k
            if search in dic and search != j:
                answer = False
                return answer
            
    return answer

해시를 이용한 풀이. (처음에 접근을 잘못해서 도움을 받고 풀었다.)

 

폰번호를 딕셔너리에 키값으로 저장하고 순회를 통해 앞 문자열부터 하나씩 붙여가면서 그 붙인 문자열이 만약 접두어 이고, 그 접두어 자체의 번호가 아니라면 접두어가 포함 된 다른번호이므로 false