Algorithm/프로그래머스

[프로그래머스/Python] 전화번호 목록 - Level2

poppy 2021. 5. 2. 15:22
반응형

programmers.co.kr/learn/courses/30/lessons/42577?language=python3

 

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

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

programmers.co.kr

def solution(phone_book):
    phone_book.sort()
    
    for i in range(0, len(phone_book)-1):
        if phone_book[i+1].startswith(phone_book[i]):
            return False
    
    return True

배열을 정렬한 후 for문을 돌면서 접두어인 경우가 있는지 확인하는 구조로 코드를 짰다.

 

- 배운점 - 

문자열.startswith(특정 문자열) - 문자열이 특정 문자열로 시작하는지 여부를 알려주는 함수이다 

 

다른 사람들의 코드를 살펴보니까 이 코드에서도 zip()을 사용하면 좀 더 직관적으로 코드를 짤 수 있는 것 같다.

def solution(phone_book):
    phone_book.sort()
    for p1, p2 in zip(phone_book, phone_book[1:]):
        if p2.startswith(p1):
            return False
    return True
반응형