전화번호 목록
문제 링크

나의 풀이
def solution(phone_book):
    answer = True
    phone_dic = {}
    for phone_number in phone_book:
        phone_dic[phone_number] = 0
    for phone_number in phone_book:
        temp = ''
        for num in phone_number:
            temp += num
            if temp in phone_dic and temp != phone_number:
                return False
    return answer
- 전화번호부(phone_book)의 전화번호(phone_number)를 phone_dic 딕셔너리의 키 값으로 설정해 준다.
 
- temp변수에 반복문으로 전화번호(phone_number) 한 자리씩 넣어주면서, if문(temp가 phone_dic의 key값과 일치하면서 temp와 phone_number가 다를때의 조건)을 통해 True/False 판단한다.
 
다른 사람의 풀이
def solution(phoneBook):
    phoneBook = sorted(phoneBook)
    for p1, p2 in zip(phoneBook, phoneBook[1:]):
        if p2.startswith(p1):
            return False
    return True
- 해쉬를 사용한 풀이는 아니지만 startswith 메서드를 사용한 깔끔한 풀이이다. 자주 사용하지 않으면 잊어버려서 가져와본 답안이다!