프그스_해시_전화번호 목록_레벨2 (해시테이블_ 문자열로 된 리스트 sort 주의사항)

RostoryT·2022년 7월 16일
0

String and Implementation

목록 보기
11/18

메모

이거도 브루트포스 아니야?

있으면 False
없으면 True임


내가 짠

  • 정확성은 전부 통과
  • 효율성 0점(시간초과)
    • for문을 두 개 써서 그렇다고 함
    • 하나로 줄일 수 있도록 해야함
def solution(phone_book):
    answer = True
    phone_book.sort()
    lg = len(phone_book)
        
    for i in range(lg):
        leng = len(phone_book[i])
        for j in range(i+1, lg):
            if phone_book[i] == phone_book[j][:leng]:
                answer = False
    
    return answer


print(solution(["119", "97674223", "1195524421"]))
print(solution(["123","456","789"]))
print(solution(["12","123","1235","567","88"]))


알고 넘어가야할 내용 - 문자열 리스트 정렬 (중요)

  • 숫자로 된 리스트는 sort( )하면

  • 문자열로 된 리스트는 sort( ) 하면 아래와 같다 (개중요)
    - 그래서 현재랑 바로 다음거랑 비교하면 된다는 말이다


솔루션 코드 - 블로그

def solution(phone_book):
    answer = True
    phone_book.sort()
        
    for i in range(len(phone_book)-1):
        leng = len(phone_book[i])
        if len(phone_book[i]) < len(phone_book[i+1]):            
            if phone_book[i] == phone_book[i+1][:leng]:
                answer = False
                break
    
    return answer


print(solution(["119", "97674223", "1195524421"]))
print(solution(["123","456","789"]))
print(solution(["12","123","1235","567","88"]))


profile
Do My Best

0개의 댓글