문제 링크
내 풀이 ( 효율성에서 틀림 )
# 번호중에 다른 전화번호의 접두사가 되는 번호가 있는지
# 각 전화번호 => 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 함수의 사용
댓글남기기