전화번호 목록
문제 링크

나의 풀이
def solution(phone_book):
answer = True
phone_dic = {}
for phone_number in phone_book:
phone_dic[phone_number] = 0
for phone_number in phone_book:
temp = ''
for num in phone_number:
temp += num
if temp in phone_dic and temp != phone_number:
return False
return answer
- 전화번호부(phone_book)의 전화번호(phone_number)를 phone_dic 딕셔너리의 키 값으로 설정해 준다.
- temp변수에 반복문으로 전화번호(phone_number) 한 자리씩 넣어주면서, if문(temp가 phone_dic의 key값과 일치하면서 temp와 phone_number가 다를때의 조건)을 통해 True/False 판단한다.
다른 사람의 풀이
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
- 해쉬를 사용한 풀이는 아니지만 startswith 메서드를 사용한 깔끔한 풀이이다. 자주 사용하지 않으면 잊어버려서 가져와본 답안이다!