반응형

효율성에서 계속 통과를 못했는데 정렬하는 코드를 넣고,

그 뒤에 하나의 요소만 비교해서 같으면 False를 리턴하게끔 했더니 통과하였다.

 

 

참고: https://school.programmers.co.kr/questions/47477

 

 


문제

 

 

 


코드

 

통과한 코드

# 어떤 번호가 다른 번호의 접두사인 경우가 있으면 false
# 접두사인 경우가 없으면 true를 return 하는 함수
def solution(phone_book):

    phone_book = sorted(phone_book)

    for i in range(len(phone_book) - 1):
        standard_str = phone_book[i]
        standard_len = len(standard_str)

        if standard_str == phone_book[i+1][:standard_len]:
            return False
    
    answer = True
    return answer

 

 

정확도는 통과했는데, 효율성에서 실패한 코드

# 정확도는 통과했는데, 효율성에서 실패함
def solution(phone_book):
    for standard_str in phone_book:
        
        standard_len = len(standard_str)
        str_cnt = [str[:standard_len] for str in phone_book].count(standard_str)

        if str_cnt > 1:
            return False
    
    answer = True
    return answer

 

 

 

 


반응형
복사했습니다!