https://programmers.co.kr/learn/courses/30/lessons/42577
처음에 접근했던 방식은 startswith()
함수를 사용해서 접두어가 존재하는지 판별하려고 했는데 다른 테스트 케이스에서 걸려서 결국은 틀림...
결국, 딕셔너리 방식을 사용하여서 문제를 풀긴 했지만 다시 해시 공부를 해야겠다는 생각이 들었다.
처음 풀었던 코드
def solution(phone_book):
# 접두어를 찾기 위해 오름차순으로 정렬함
phone_book = sorted(phone_book)
# zip()함수로
for x, y in zip(phone_book, phone_book[1:]):
# 접두어인지 확인
if y.startswith(x):
return False
return True
딕셔너리를 사용한 코드
def solution(phone_book):
answer = True
hash_map = {}
for number in phone_book:
hash_map[number] = 1
for number in phone_book:
temp = ""
for num in number:
temp += num
if temp in hash_map and temp != number:
answer = False
return answer