(프로그래머 | 파이썬) 전화번호 목록

문제

해결

def solution(phone_book):
    for i in range(len(phone_book)):
        for j in range(i+1, len(phone_book)):
            if phone_book(i) == phone_book(j)(:len(phone_book(i))):
                return False
    return True


개선 사항 찾기

같지 않을 때 바로 정리하고 쉬는 것이 더 효율적이지 않을까 싶습니다.

def solution(phone_book):
    phone_book.sort()
    for i in range(len(phone_book)):
        for j in range(i+1, len(phone_book)):
            if phone_book(i) == phone_book(j)(:len(phone_book(i))):
                return False
            else:
                break
    return True



다른 사람을 해결

문자열 함수 시작하다를 이용한 풀이 방법

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

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

공지사항
s.startswith(‘찾을 문자’) : s가 ‘찾을 문자’로 시작하면 참을 반환합니다.
s.endwith(‘찾을 문자’) : s가 ‘찾을 문자’로 끝나면 참을 반환합니다.