https://programmers.co.kr/learn/courses/30/lessons/42577
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
일단 phone_book
을 정렬시키고 zip()
을 통해 phone_book
과 앞의 원소가 빈 phone_book
을 p1
, p2
로 둔다음 startswith()
로 p2에서 p1이 시작하는지 체크를 한다. 서로 전체를 비교하지 않아도 되는 이유는 정렬을 통해 같은 이름으로 시작하는 원소들끼리는 붙어있기때문에 각자 앞뒤로 원소를 비교만 해도 정답을 찾을수 있기 때문이다.