codility-MissingInteger

2020. 3. 29. 22:55개발노트

https://app.codility.com/c/run/trainingJUYYB4-AA7/

 

N개의 상수로 이루어진 리스트 A가 있을 때

A 안에 없는 가장 작은 자연수(0보다 큰 수)를 리턴한다.

 

def solution(A):
    check = [False] * len(A)
    for value in A:
    	# 0보다 크고 len(A)보다 작을 때
        #check 값을 True로 바꿔준다.
        if 0 < value <= len(A):
            check[value-1] = True
    for idx in range(len(check)):
    	#체크되지 않은 값이 있을 경우
        #그 값의 + 1을 리턴한다.
        if check[idx] == False:
            return idx + 1
 	#그렇지 않으면 A길이 + 1을 리턴한다.
    return len(A)+1

check 배열을 만들어서 A에 있는 요소인지 체크

for문을 돌며 체크되지 않은 값이 있으면 return idx + 1한다.

음수만 있는 리스트인 경우에도 check배열은 생성된 상태이므로 return idx + 1 한다.

 

그렇지 않은 경우는 A의 길이 + 1값을 리턴한다.