기타

프로그래머스 파이썬 전화번호 목록

작지 2021. 11. 6. 03:26

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

 

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

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

programmers.co.kr

 

phone_book 의 길이가 100만 이하이기 때문에 이중 for 문을 돌렸다가는 시간초과가 날것이 분명했다.

 

한번의 for 문으로 결과를 내야하기 때문에 sort값을 이용해 정렬 후

for i in range(len(phone_book)-1) 이후

phone_book[i+1]이 phone[i] 로 시작하는지 체크. 이후 answer 값을 도출함.

startswith 함수를 이용해 서치를 했다.

def solution(phone_book):
    
    answer = True
    phone_book.sort()

    for i in range(len(phone_book) - 1):

        if phone_book[i + 1].startswith(phone_book[i]):
            answer = False
        else:
            continue

    return answer