https://school.programmers.co.kr/learn/courses/30/lessons/42577
- 첫 번째 풀이 (효율성 3, 4에서만 시간초과)
import re
def solution(phone_book):
phone_book = sorted(phone_book, key=lambda x : len(x))
for i in range(len(phone_book)-1):
pattern = re.compile({phone_book[i]})
for j in range(i+1, len(phone_book)):
if pattern.match(phone_book[j]):
return False
return True
두 개의 for문을 돌면서 전부 찾다보니까 시간이 너무 오래걸리는 것 같음
- 다른 풀이
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
zip과 startswith를 이용해서 두개를 동시에 확인하면서 진행하니까 통과함
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Python] 야근 지수 (0) | 2023.01.05 |
---|---|
[Python] 크기가 작은 부분 문자열 (0) | 2023.01.04 |
[Python] 실패율 (0) | 2022.12.31 |
[Python] 콜라 문제 (0) | 2022.12.30 |
[Python] 소수 만들기 (0) | 2022.12.29 |