From b6176fca581aeb991d748dc6970c249055e4d695 Mon Sep 17 00:00:00 2001 From: Won Joon Thomas Choi <113500771+724thomas@users.noreply.github.com> Date: Thu, 13 Aug 2026 22:38:18 +0900 Subject: [PATCH 1/2] Create 1539. Kth Missing Positive Number --- .../1539. Kth Missing Positive Number" | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 "leetcode3/\354\265\234\354\233\220\354\244\200/1539. Kth Missing Positive Number" diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/1539. Kth Missing Positive Number" "b/leetcode3/\354\265\234\354\233\220\354\244\200/1539. Kth Missing Positive Number" new file mode 100644 index 00000000..a35c1da2 --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/1539. Kth Missing Positive Number" @@ -0,0 +1,23 @@ +# + +''' +1. 아이디어 : +10000만까지 count하면서 존재하지 않으면 k를 감소. +k가 0 이면 해당 숫자가 답 + +2. 시간복잡도 : + O(10000) + +3. 자료구조/알고리즘 : +- + +''' + +class Solution: + def findKthPositive(self, arr: List[int], k: int) -> int: + num_set = set(arr) + for i in range(1, 10000): + if i not in num_set: + k-=1 + if k == 0: + return i From 0f0cfd4a3517a1298ea32a1998e42ee2943c3f2a Mon Sep 17 00:00:00 2001 From: Won Joon Thomas Choi <113500771+724thomas@users.noreply.github.com> Date: Thu, 13 Aug 2026 22:38:39 +0900 Subject: [PATCH 2/2] Add solution for Valid Triangle Number problem Implement two-pointer approach to count valid triangle numbers. --- .../611. Valid Triangle Number.py" | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 "leetcode3/\354\265\234\354\233\220\354\244\200/611. Valid Triangle Number.py" diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/611. Valid Triangle Number.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/611. Valid Triangle Number.py" new file mode 100644 index 00000000..d3be585a --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/611. Valid Triangle Number.py" @@ -0,0 +1,58 @@ +# + +''' +1. 아이디어 : +투포인터를 사용. +i에 위치한 숫자가 왼쪽+오른쪽 값보다 작으면 삼각형이 만들어진다. +오른쪽 포인터를 이동하여 유요한지 확인 +else +왼쪽 포인터를 이동. + +2. 시간복잡도 : + O(n*n) + +3. 자료구조/알고리즘 : +투포인터 + +''' +class Solution: + def triangleNumber(self, nums: List[int]) -> int: + nums.sort() + n = len(nums) + ans = 0 + + for i in range(n-1, 1, -1): + left = 0 + right = i - 1 + + while left < right: + if nums[left] + nums[right] > nums[i]: + ans += right - left + right -= 1 + else: + left += 1 + return ans + + # nums.sort() + # def binary_search(side1, side2, mid_index): + # left = mid_index + # right = n + + # while left < right: + # mid = (left+right) // 2 + # longest = nums[mid] + # if longest < side1 + side2: + # left = mid+1 + # else: + # right = mid + # return left + + # n = len(nums) + # ans = 0 + # for i in range(n): + # if nums[i] == 0: + # continue + # for j in range(i+1, n): + # end = binary_search(nums[i], nums[j], j+1) + # ans += end - (j+1) + # return ans