공부/코딩테스트
[프로그래머스] 전화번호 목록(파이썬)
ghhong
2022. 1. 13. 14:27
나의 답 :
def solution(phone_book):
phone_book.sort()
l=["12","13","1412"]
l.sort()
print(l)
for i in range(len(phone_book)-1):
if phone_book[i] == phone_book[i+1][0:len(phone_book[i])]:
#대박 in으로 찾았는데 다른 곳에 있을 수도 있어서 틀린 답임 ;;;;;
#예를들면 '13', 1413' 이면 접두사에는 없는데 있긴 있음
return False
return True
해쉬문젠데 이게 복잡도 덜 잡아먹긴 함
같은 유형 다른 답 :
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
복잡도 같음
해시 답 :
def solution(phone_book):
answer = True
hash_map = {}
for phone_number in phone_book:
hash_map[phone_number] = 1
for phone_number in phone_book:
temp = ""
for number in phone_number:
temp += number
if temp in hash_map and temp != phone_number:
answer = False
return answer