전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인한다.
접두어가 있으면 false, 없으면 true를 반환한다.
phone_book | return |
---|---|
["119", "97674223", "1195524421"] | false |
["123","456","789"] | true |
["12","123","1235","567","88"] | false |
def solution(phone_book):
answer = True
phone_book.sort()
for i in phone_book:
for j in phone_book:
if i!=j and i == j[0:len(i)]:
answer = False
return answer
return answer
for문을 중복해서 만든 코드.
정확성 테스트는 모두 맞았는데 효율성 테스트는 테스트3과 테스트4에서 시간 초과가 났다.
def solution(phone_book):
answer = True
phone_book.sort()
phone_book_size=len(phone_book)
for i in range(0, phone_book_size-1):
if phone_book[i]==(phone_book[i+1])[0:len(phone_book[i])]:
answer=False
return answer
return answer
수정해서 맞은 코드
전화번호부 소트→O(NlogN)
for문으로 비교→O(N)
⇒O(NlogN)
비효율적으로 모든 전화번호를 다 탐색했다.