나의 답 :
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
'공부 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 튜플(파이썬) (1) | 2022.01.13 |
---|---|
[프로그래머스] 카펫(파이썬) (0) | 2022.01.13 |
[프로그래머스] 삼각 달팽이(파이썬) (0) | 2022.01.10 |
[프로그래머스] 최댓값과 최솟값(파이썬) (0) | 2022.01.05 |
[프로그래머스] 최솟값 만들기(파이썬) (0) | 2022.01.05 |