Codility – PermMissingElem

문제

https://app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/


정답

def solution(A):
    A.sort()
    for index,a in enumerate(A):
        if (index + 1) != a:
            return index + 1
    return len(A) + 1

풀이

예외처리를 올바르게 할 수 있는지 파악하는 문제입니다.

배열을 순서대로 맞춰주기 위해서 정렬을 합니다.

정렬을 하였기 때문에 빠진 숫자가 아니라면, 배열의 index 위치에 (index + 1)가 있어야 합니다.

이 때 마지막 숫자까지 배열에 존재할 경우 문제의 [1..(N + 1)] 범위에서 (N + 1)이 배열에서 빠진 것이기 때문에 해당 값에 해당하는 (len(A) + 1)을 반환해 줍니다.


  • 끝 값에 해당 하는 예외상황을 잘 처리해야 합니다.

Post Author: Jinn