YUDA't

0. 문제

주어진 리스트 A는 N개의 서로 다른 숫자로 이루어져 있다.

그리고 이 리스트에는 [1..(N + 1)] 이렇게 1부터 N+1까지의 숫자가 무작위로 섞여있는데 항상 하나의 숫자가 빠져있다.

이 빠진 숫자를 구하시오.


1. 답변

주의할 점은...

- 리스트 아이템이 하나일 경우

- 첫 번째(1) 혹은 마지막(N+1)이 빠졌을 경우

이걸 감을 못잡아서 계속 고쳤다...


def solution(A):
    if A:
        sorted_A = sorted(A)
        for idx, n in enumerate(sorted_A, 1):
            if idx != n:
                return idx
        return sorted_A[-1]+1
    else:
        return 1


enumerate() 는 내장함수인데 실제 업무에서도 굉장히 유용하게 쓰고 있다.

'개발 > 알고리즘 문제' 카테고리의 다른 글

[Codility] FrogJmp  (0) 2017.11.07
[Codility] TapeEquilibrium  (0) 2017.11.06
[Codility] PermMissingElem  (0) 2017.11.05
[Codility] CyclicRotation  (0) 2017.11.04
[Codility] OddOccurrencesInArray  (0) 2017.11.02
[Codility] BinaryGap  (0) 2017.11.01