최대 1 분 소요

문제 링크

내 풀이 ( 효율성에서 틀림 )

# 번호중에 다른 전화번호의 접두사가 되는 번호가 있는지
# 각 전화번호 => 1이상 20이하 길이

def solution(phone_book):
    i = 0
    while i < len(phone_book):
        front = phone_book[i]
        word_length = len(front)
        for phone in phone_book:
            if phone == front:
                continue
            if phone[0:word_length] == front:
                return False
        i += 1
    return True
                

다른 풀이

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

풀이 해석

  • 전화번호부를 정렬하여 오름차순으로 나열한다
  • 그 후 바로 옆의 전화번호끼리만 비교한다

배울 점

  • sort()를 통해 오름차순으로 정렬한 후 문제에 접근하는 사고
  • startswith 함수의 사용

댓글남기기