PermMissingElem - Easy (Codility, 시간복잡도)

2023. 1. 12. 09:41코딩 테스트 준비

728x90
반응형
def solution(A): 
    if len(A) == 1 and A[-1] == 1:
        return 2
    if len(A) == 1 and A[-1] != 1:
        return 1

    A.sort()
    for i in range(len(A)-1):
        if A[i+1] != A[i]+1:
            return A[i]+1
    
    if 1 not in A:
        return 1
    
    return A[-1] + 1


처음에는 그냥 sort와 반복문을 이용했는데 1이 시작이 아닌 경우와 모든 N+1이 존재할 경우 길이가 하나인데 값이 2인 경우 등을 생각하지 못해 점수가 50이 나왔고 해당 부분을 처리해주니 O(n)에서 O(n log n)의 시간 복잡도가 나왔다.

 

728x90
반응형