[2021][01]Kth Missing Positive

최광현·2021년 1월 6일
0

LeetCode

목록 보기
2/9

문제

문제의 요약

배열 arr이 주어졌을 때 빠진 자연수 중 k번째로 빠진 자연수를 반환하는 문제이다.

제약 조건

  • 배열의 길이는 1 이상 1000 이하
  • 배열의 값은 1이상 1000 이하
  • k의 값은 1이상 1000 이하
  • 1 <= i < j <= arr.length일 때 arr[i] < arr[j]

문제 접근

1부터 배열의 최대값까지 배열에 빠진 자연수가 있다면 별도의 배열인 answer라는 배열에 저장한다. 빠진 자연수를 저장한 배열인 answer의 길이가 k보다 크거나 같다면 answer에 저장된 k-1번째 인덱스 위치한 자연수를 반환한다. 반대의 경우라면 마지막 빠진 자연수에서 (k - answer 배열의 길이)를 더한 값을 반환한다.

class Solution:
    def findKthPositive(self, arr: List[int], k: int) -> int:
        curr = 1
        answer = []

        while curr < arr[-1]:
            if curr not in arr:
                answer.append(curr)
            curr+=1

        return answer[k-1] if len(answer) >= k else curr + k - len(answer)
profile
Being a programmer

0개의 댓글