728x90

나의 풀이
def solution(phone_book):
phone_book.sort()
for p in range(len(phone_book)):
for n in range(p + 1, len(phone_book)):
if (phone_book[p] != phone_book[n][:len(phone_book[p])]):
break
return False
return True
startswith을 활용한 풀이
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
정규 표현식을 활용한 풀이
import re
def solution(phoneBook):
for b in phoneBook:
p = re.compile("^"+b)
for b2 in phoneBook:
if b != b2 and p.match(b2):
return False
return True반응형
'Coding Test > Programmers' 카테고리의 다른 글
| [프로그래머스/파이썬] 베스트앨범 (0) | 2022.05.24 |
|---|---|
| [프로그래머스/파이썬] 위장 (0) | 2022.05.24 |
| [프로그래머스/파이썬] 완주하지 못한 선수 (0) | 2022.05.24 |
| [프로그래머스/MySQL] 상위 n개 레코드 (0) | 2022.05.23 |
| [프로그래머스/MySQL] 여러 기준으로 정렬하기 (0) | 2022.05.23 |