알고리즘2022. 2. 26. 23:47
728x90

[ 문제 ]

https://programmers.co.kr/learn/courses/30/lessons/42577

 

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

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

programmers.co.kr

 

 

[ 코드 ]

def solution(phone_book):
    dic = {}
    for num in phone_book:
        dic[num] = 1 #기본 값
    
    # 각 폰 번호에 대해
    for n in phone_book: # ex. 123
        str_num = ''   
        for i in n:     # ex. 1/ 2/ 3
            str_num += i
            # 하나씩 자른게 딕셔너리에 있는지 확인 (단, 본인은 아닌거)
            if (str_num in dic) and (str_num != n):
                return False #처음에 answer=True 하고 return answer해도 되지만 이게 더 빠름
    return True
반응형
Posted by mminky