Algorithm-211002

박건희·2021년 10월 2일
0

1. 없는 숫자 더하기

차집합으로 없는 숫자를 o(1)에 구하고, 기본 내장함수 sum(iterable)로 집합 원소의 합을 구함

def solution(numbers):
    numset = set([i for i in range(10)]) - set(numbers)
    return sum(numset)

2. 전화번호목록

해시 유형이라는데 아직 해시 풀이법은 모르겠다.

효율성 TC 3,4에서 시간초과
-> 길이로 sort하고 n번 반복하여 비교 기준과 대상의 접두부가 일치하는지 비교하는 것에서 초과
=> 문자열 리스트를 sort하면 큰 자리수가 작은 것부터, 그 다음엔 길이 순으로 오름차순 정렬됨.
즉, 정렬후 인접한 문자열이 접두어가 될 후보.

def solution(phone_book):

    phone_book.sort()
    for i,word in enumerate(phone_book[1:]):
        if phone_book[i] == word[:len(phone_book[i])]:
            return False
    return True

0개의 댓글