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

문제

프로그래머

코드 중심 개발자를 모집합니다. 스택 기반 위치 일치. 프로그래머의 개발자별 프로필에 등록하고 귀하와 기술 호환성이 좋은 회사와 연결하십시오.

Programmers.co.kr

해결

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가 ‘찾을 문자’로 끝나면 참을 반환합니다.