[Python] 전화번호 목록

허창원·2023년 9월 1일
0
post-thumbnail
post-custom-banner

문제 설명 및 링크

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

접근 방법 및 해결 전략

  1. phone_book을 sort하여 이중 for문으로 첫번째 요소부터 비교하여 접두사인지 확인했다. 접두사를 확인하기 위해선 startswith() 함수를 사용했다. 테스트케이스는 모두 통과했으나 효율성 테스트 3,4를 통과하지 못했다.
  2. 고민하다 보니 정렬을 했다면 이중 for문을 사용할 이유가 없다는 것을 깨달았다.
[0][1][2][3]
phone_book"122""123""2""22"

정렬을 했기 때문에 [1]은 [0]의 접두어일 수가 없다. 그러므로 인덱스 앞(작은 수)의 값이 뒤의 값(큰 수)만 비교하면 접두사인지 알 수 있다.

코드 작성 및 설명

첫 번째

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

두 번째

def solution(phone_book):
    phone_book = sorted(phone_book)
    
    for i in range(1,len(phone_book)):
        if phone_book[i].startswith(phone_book[i-1]):
                return False      
    return True
post-custom-banner

0개의 댓글