From 849cf91fbc213a2a3f33f1a6951f00d72b06a0ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=EC=98=81=5Bchris=5D=5BTech=5D?= Date: Wed, 23 Jul 2025 23:05:07 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=201=EC=A3=BC=EC=B0=A8=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=ED=92=80=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contains-duplicate/chrisjune.py | 9 +++++++++ house-robber/chrisjune.py | 12 ++++++++++++ longest-consecutive-sequence/chrisjune.py | 18 ++++++++++++++++++ top-k-frequent-elements/chrisjune.py | 12 ++++++++++++ two-sum/chrisjune.py | 11 +++++++++++ 5 files changed, 62 insertions(+) create mode 100644 contains-duplicate/chrisjune.py create mode 100644 house-robber/chrisjune.py create mode 100644 longest-consecutive-sequence/chrisjune.py create mode 100644 top-k-frequent-elements/chrisjune.py create mode 100644 two-sum/chrisjune.py diff --git a/contains-duplicate/chrisjune.py b/contains-duplicate/chrisjune.py new file mode 100644 index 000000000..bfb904413 --- /dev/null +++ b/contains-duplicate/chrisjune.py @@ -0,0 +1,9 @@ +class Solution: + def containsDuplicate(self, nums) -> bool: + dic = {} + for num in nums: + dic[num] = dic.get(num, 0) + 1 + for v in dic.values(): + if v > 1: + return True + return False diff --git a/house-robber/chrisjune.py b/house-robber/chrisjune.py new file mode 100644 index 000000000..4a479422f --- /dev/null +++ b/house-robber/chrisjune.py @@ -0,0 +1,12 @@ +from typing import List + + +class Solution: + def rob(self, nums: List[int]) -> int: + if len(nums) <= 1: + return nums[0] + dp = [0] * len(nums) + dp[0], dp[1] = nums[0], max(nums[0], nums[1]) + for i in range(2, len(nums)): + dp[i] = max(dp[i - 1], nums[i] + dp[i - 2]) + return dp[-1] diff --git a/longest-consecutive-sequence/chrisjune.py b/longest-consecutive-sequence/chrisjune.py new file mode 100644 index 000000000..62db0e648 --- /dev/null +++ b/longest-consecutive-sequence/chrisjune.py @@ -0,0 +1,18 @@ +from typing import List + + +class Solution: + def longestConsecutive(self, nums: List[int]) -> int: + if len(nums) < 1: + return 0 + nums = list(set(nums)) + nums.sort() + dp = [0] * len(nums) + dp[0] = 1 + for i in range(1, len(nums)): + if nums[i - 1] + 1 == nums[i]: + dp[i] = dp[i - 1] + 1 + else: + dp[i] = 1 + print(dp) + return max(dp) diff --git a/top-k-frequent-elements/chrisjune.py b/top-k-frequent-elements/chrisjune.py new file mode 100644 index 000000000..9d076db31 --- /dev/null +++ b/top-k-frequent-elements/chrisjune.py @@ -0,0 +1,12 @@ +from typing import List + + +class Solution: + def topKFrequent(self, nums: List[int], k: int) -> List[int]: + dic = {} + for num in nums: + dic[num] = dic.get(num, 0) + 1 + l = [(k, v) for k, v in dic.items()] + l.sort(reverse=True, key=lambda x: x[1]) + l = [i for i, _ in l] + return l[:k] diff --git a/two-sum/chrisjune.py b/two-sum/chrisjune.py new file mode 100644 index 000000000..e6dc4d7ef --- /dev/null +++ b/two-sum/chrisjune.py @@ -0,0 +1,11 @@ +from typing import List + + +class Solution: + def twoSum(self, nums: List[int], target: int) -> List[int]: + for i in range(len(nums)): + for j in range(len(nums)): + if i == j: + continue + if nums[i] + nums[j] == target: + return [i, j] From 7720eff76612fe42016758dc373212e435cb2d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=EC=98=81=5Bchris=5D=5BTech=5D?= Date: Thu, 24 Jul 2025 10:29:39 +0900 Subject: [PATCH 2/2] two sum refactoring --- two-sum/chrisjune.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/two-sum/chrisjune.py b/two-sum/chrisjune.py index e6dc4d7ef..8a285d870 100644 --- a/two-sum/chrisjune.py +++ b/two-sum/chrisjune.py @@ -3,9 +3,9 @@ class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: + nums_dic = {num: idx for idx, num in enumerate(nums)} for i in range(len(nums)): - for j in range(len(nums)): - if i == j: - continue - if nums[i] + nums[j] == target: - return [i, j] + remain = target - nums[i] + exists_idx = nums_dic.get(remain) + if exists_idx and exists_idx != i: + return i, exists_idx