programmers | Lv2. 전화번호 목록 [Python]

yeonk·2022년 2월 26일
0

algorithm

목록 보기
54/88
post-thumbnail

💡 Python 3






🔗 문제

전화번호 목록 [Link]






💻 코드

효율성 테스트에서 시간 초과로 실패한 코드 ..

def solution(pb):
    pb.sort()
    for i, num in enumerate(pb):
        for j in range(i+1, len(pb)):
            if num == pb[j][:len(num)]: return False
    return True






sort 로 정렬한 점을 고려해서 다시 작성한 코드

def solution(pb):
    pb.sort()
    for i in range(len(pb)-1):
        if len(pb[i]) < len(pb[i+1]):
            if pb[i] == pb[i+1][:len(pb[i])]: return False
    return True






💥 다른 사람 코드

zipstartswith를 활용한 코드
startswith 는 인자로 튜플, 문자열만 받는다.

def solution(phoneBook):
    phoneBook = sorted(phoneBook)

    for p1, p2 in zip(phoneBook, phoneBook[1:]):
        if p2.startswith(p1):
            return False
    return True






참고 자료

[python] startswith() 사용방법 정리 @.@

0개의 댓글