programmers 알고리즘/구현

전화번호 목록 (해시)

garyOnReduce 2020. 11. 2. 16:03

programmers.co.kr/learn/courses/30/lessons/42577?language=python3

 

코딩테스트 연습 - 전화번호 목록

전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조

programmers.co.kr

 

def solution(P):
    # S: { "119", "11955" }
    S = set(P)
    for x in P:
        # tmp: "1", "11", "1", "11", "119", "1195" (접두어 추출해서 목록에 있는지 검사)
        tmp = ""
        for c in x:
            tmp += c
            if tmp in S and tmp != x:
                return False
    return True


res = solution(["119", "11955"])
print(res)