알고리즘 공부/고득점kit
[해시]전화번호 목록
에러정리
2021. 9. 3. 17:22
내 풀이
def solution(phone_book):
answer = True
phone_book.sort()
if len(phone_book) == 1:
return answer
else:
while answer == True:
for i in range(len(phone_book)-1):
if phone_book[i] in phone_book[i+1][:len(phone_book[i])]:
answer = False
break
break
return answer
def solution(phone_book):
answer = True
phone_book.sort()
if len(phone_book) == 1:
return answer
else:
while answer == True:
for i in range(len(phone_book)-1):
if phone_book[i] in phone_book[i+1]:
answer = False
break
break
return answer
처음에 이렇게 했는데 ["45","43456"] 이렇게 단순 포함되는 경우도 False를 반환하기 때문에 위에처럼 시작 바꿨다
해시를 이용한 다른 풀이
def solution(phone_book):
answer = True
hash_map = {}
temp = ''
for phone_num in phone_book:
hash_map[phone_num] = 1
print(hash_map)
for phone_num in phone_book:
temp = ''
for k in phone_num:
temp += k
if temp in hash_map and temp != phone_num:
answer = False
return answer