From a2f5247151515cda60e3ec3e43b76b4117af2f51 Mon Sep 17 00:00:00 2001 From: jinbeom Date: Fri, 16 Aug 2024 23:29:28 +0900 Subject: [PATCH 1/9] Contains Duplicate Solution --- contains-duplicate/kayden.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 contains-duplicate/kayden.py diff --git a/contains-duplicate/kayden.py b/contains-duplicate/kayden.py new file mode 100644 index 000000000..9a4707da3 --- /dev/null +++ b/contains-duplicate/kayden.py @@ -0,0 +1,4 @@ +class Solution: + def containsDuplicate(self, nums: List[int]) -> bool: + unique_nums = set(nums) + return len(unique_nums) != len(nums) \ No newline at end of file From d842c9f2dab43052484ec69c189286be561cf604 Mon Sep 17 00:00:00 2001 From: jinbeom Date: Fri, 16 Aug 2024 23:43:40 +0900 Subject: [PATCH 2/9] Number of 1 Bits Solution --- number-of-1-bits/kayden.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 number-of-1-bits/kayden.py diff --git a/number-of-1-bits/kayden.py b/number-of-1-bits/kayden.py new file mode 100644 index 000000000..df7995f59 --- /dev/null +++ b/number-of-1-bits/kayden.py @@ -0,0 +1,3 @@ +class Solution: + def hammingWeight(self, n: int) -> int: + return bin(n).count("1") \ No newline at end of file From 00664751b0e95e830aa32e49a1c25390510cba18 Mon Sep 17 00:00:00 2001 From: jinbeom Date: Fri, 16 Aug 2024 23:52:46 +0900 Subject: [PATCH 3/9] Top K Frequent Elements Solution --- top-k-frequent-elements/kayden.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 top-k-frequent-elements/kayden.py diff --git a/top-k-frequent-elements/kayden.py b/top-k-frequent-elements/kayden.py new file mode 100644 index 000000000..ded1e206e --- /dev/null +++ b/top-k-frequent-elements/kayden.py @@ -0,0 +1,5 @@ +from collections import Counter + +class Solution: + def topKFrequent(self, nums: List[int], k: int) -> List[int]: + return [num for num, count in Counter(nums).most_common(k)] \ No newline at end of file From c14ea012e62995ec47e5c3d1b0023f3fda562935 Mon Sep 17 00:00:00 2001 From: jinbeom Date: Sat, 17 Aug 2024 00:20:51 +0900 Subject: [PATCH 4/9] Kth Smallest Element in a BST Solution --- kth-smallest-element-in-a-bst/kayden.py | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 kth-smallest-element-in-a-bst/kayden.py diff --git a/kth-smallest-element-in-a-bst/kayden.py b/kth-smallest-element-in-a-bst/kayden.py new file mode 100644 index 000000000..daeb8ef53 --- /dev/null +++ b/kth-smallest-element-in-a-bst/kayden.py @@ -0,0 +1,30 @@ +class TreeNode: + def __init__(self, val=0, left=None, right=None): + self.val = val + self.left = left + self.right = right + + +class Solution: + + def kthSmallest(self, root: Optional[TreeNode], k: int) -> int: + self.result = 0 + self.count = 0 + + def dfs(node): + if node is None: + return + + dfs(node.left) + + self.count += 1 + + if self.count == k: + self.result = node.val + return + + dfs(node.right) + + dfs(root) + + return self.result \ No newline at end of file From 64758f0faaa4e161e4b661cf83391096bbf5e91b Mon Sep 17 00:00:00 2001 From: jinbeom Date: Sat, 17 Aug 2024 00:56:14 +0900 Subject: [PATCH 5/9] Palindromic Substrings Solution --- kth-smallest-element-in-a-bst/kayden.py | 2 +- palindromic-substrings/kayden.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 palindromic-substrings/kayden.py diff --git a/kth-smallest-element-in-a-bst/kayden.py b/kth-smallest-element-in-a-bst/kayden.py index daeb8ef53..f0ff8c089 100644 --- a/kth-smallest-element-in-a-bst/kayden.py +++ b/kth-smallest-element-in-a-bst/kayden.py @@ -27,4 +27,4 @@ def dfs(node): dfs(root) - return self.result \ No newline at end of file + return self.result \ No newline at end of file diff --git a/palindromic-substrings/kayden.py b/palindromic-substrings/kayden.py new file mode 100644 index 000000000..aebc0bf7a --- /dev/null +++ b/palindromic-substrings/kayden.py @@ -0,0 +1,20 @@ +class Solution: + def countSubstrings(self, s: str) -> int: + n = len(s) + count = n + isPalindrome = [[False for _ in range(n)] for _ in range(n)] + + for i in range(n): + isPalindrome[i][i] = True + if i < n-1 and s[i] == s[i+1]: + isPalindrome[i][i+1] = True + count += 1 + + for length in range(3, n + 1): + for i in range(n - length + 1): + j = i + length - 1 + if isPalindrome[i+1][j-1] and s[i] == s[j]: + isPalindrome[i][j] = True + count += 1 + + return count \ No newline at end of file From 534fb7695e5f0253b2c4b8cf1cf9bfd0fffc00b8 Mon Sep 17 00:00:00 2001 From: jinbeom Date: Sat, 17 Aug 2024 01:10:52 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=EC=8B=9C=EA=B0=84=EB=B3=B5=EC=9E=A1?= =?UTF-8?q?=EB=8F=84,=20=EA=B3=B5=EA=B0=84=EB=B3=B5=EC=9E=A1=EB=8F=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contains-duplicate/kayden.py | 2 ++ kth-smallest-element-in-a-bst/kayden.py | 2 ++ number-of-1-bits/kayden.py | 2 ++ palindromic-substrings/kayden.py | 2 ++ top-k-frequent-elements/kayden.py | 2 ++ 5 files changed, 10 insertions(+) diff --git a/contains-duplicate/kayden.py b/contains-duplicate/kayden.py index 9a4707da3..c15746121 100644 --- a/contains-duplicate/kayden.py +++ b/contains-duplicate/kayden.py @@ -1,3 +1,5 @@ +# 시간복잡도: O(N) +# 공간복잡도: O(N) class Solution: def containsDuplicate(self, nums: List[int]) -> bool: unique_nums = set(nums) diff --git a/kth-smallest-element-in-a-bst/kayden.py b/kth-smallest-element-in-a-bst/kayden.py index f0ff8c089..7c1393b78 100644 --- a/kth-smallest-element-in-a-bst/kayden.py +++ b/kth-smallest-element-in-a-bst/kayden.py @@ -1,3 +1,5 @@ +# 시간복잡도: O(N) +# 공간복잡도: O(1) class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val diff --git a/number-of-1-bits/kayden.py b/number-of-1-bits/kayden.py index df7995f59..6e7fcd9c3 100644 --- a/number-of-1-bits/kayden.py +++ b/number-of-1-bits/kayden.py @@ -1,3 +1,5 @@ +# 시간복잡도: O(log N) +# 공간복잡도: O(log N) class Solution: def hammingWeight(self, n: int) -> int: return bin(n).count("1") \ No newline at end of file diff --git a/palindromic-substrings/kayden.py b/palindromic-substrings/kayden.py index aebc0bf7a..a88825af7 100644 --- a/palindromic-substrings/kayden.py +++ b/palindromic-substrings/kayden.py @@ -1,3 +1,5 @@ +# 시간복잡도: O(N^2) +# 공간복잡도: O(N^2) class Solution: def countSubstrings(self, s: str) -> int: n = len(s) diff --git a/top-k-frequent-elements/kayden.py b/top-k-frequent-elements/kayden.py index ded1e206e..b38d1bf80 100644 --- a/top-k-frequent-elements/kayden.py +++ b/top-k-frequent-elements/kayden.py @@ -1,3 +1,5 @@ +# 시간복잡도: O(Nlog N) +# 공간복잡도: O(N) from collections import Counter class Solution: From 83fcb5b60a50a21cc44323017b42059344679cf8 Mon Sep 17 00:00:00 2001 From: jinbeom Date: Sat, 17 Aug 2024 16:14:54 +0900 Subject: [PATCH 7/9] Fix Line Breaking --- contains-duplicate/kayden.py | 3 ++- kth-smallest-element-in-a-bst/kayden.py | 2 +- number-of-1-bits/kayden.py | 2 +- palindromic-substrings/kayden.py | 2 +- top-k-frequent-elements/kayden.py | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/contains-duplicate/kayden.py b/contains-duplicate/kayden.py index c15746121..5f5b306c1 100644 --- a/contains-duplicate/kayden.py +++ b/contains-duplicate/kayden.py @@ -3,4 +3,5 @@ class Solution: def containsDuplicate(self, nums: List[int]) -> bool: unique_nums = set(nums) - return len(unique_nums) != len(nums) \ No newline at end of file + return len(unique_nums) != len(nums) + \ No newline at end of file diff --git a/kth-smallest-element-in-a-bst/kayden.py b/kth-smallest-element-in-a-bst/kayden.py index 7c1393b78..014d600de 100644 --- a/kth-smallest-element-in-a-bst/kayden.py +++ b/kth-smallest-element-in-a-bst/kayden.py @@ -29,4 +29,4 @@ def dfs(node): dfs(root) - return self.result \ No newline at end of file + return self.result diff --git a/number-of-1-bits/kayden.py b/number-of-1-bits/kayden.py index 6e7fcd9c3..f5ebc633c 100644 --- a/number-of-1-bits/kayden.py +++ b/number-of-1-bits/kayden.py @@ -2,4 +2,4 @@ # 공간복잡도: O(log N) class Solution: def hammingWeight(self, n: int) -> int: - return bin(n).count("1") \ No newline at end of file + return bin(n).count("1") diff --git a/palindromic-substrings/kayden.py b/palindromic-substrings/kayden.py index a88825af7..d4760fcac 100644 --- a/palindromic-substrings/kayden.py +++ b/palindromic-substrings/kayden.py @@ -19,4 +19,4 @@ def countSubstrings(self, s: str) -> int: isPalindrome[i][j] = True count += 1 - return count \ No newline at end of file + return count diff --git a/top-k-frequent-elements/kayden.py b/top-k-frequent-elements/kayden.py index b38d1bf80..a7153c2fa 100644 --- a/top-k-frequent-elements/kayden.py +++ b/top-k-frequent-elements/kayden.py @@ -4,4 +4,4 @@ class Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: - return [num for num, count in Counter(nums).most_common(k)] \ No newline at end of file + return [num for num, count in Counter(nums).most_common(k)] From f23c23729ebfffa100c913fb51260369313ab171 Mon Sep 17 00:00:00 2001 From: jinbeom Date: Sat, 17 Aug 2024 16:15:54 +0900 Subject: [PATCH 8/9] Fix Line Breaking --- contains-duplicate/kayden.py | 1 - 1 file changed, 1 deletion(-) diff --git a/contains-duplicate/kayden.py b/contains-duplicate/kayden.py index 5f5b306c1..082bebbd8 100644 --- a/contains-duplicate/kayden.py +++ b/contains-duplicate/kayden.py @@ -4,4 +4,3 @@ class Solution: def containsDuplicate(self, nums: List[int]) -> bool: unique_nums = set(nums) return len(unique_nums) != len(nums) - \ No newline at end of file From 0faaeae8395851c8935561fa54b5dd5b56b5b895 Mon Sep 17 00:00:00 2001 From: jinbeom Date: Sat, 17 Aug 2024 16:19:46 +0900 Subject: [PATCH 9/9] Refactor Contains Duplicate --- contains-duplicate/kayden.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/contains-duplicate/kayden.py b/contains-duplicate/kayden.py index 082bebbd8..fb58caaec 100644 --- a/contains-duplicate/kayden.py +++ b/contains-duplicate/kayden.py @@ -2,5 +2,4 @@ # 공간복잡도: O(N) class Solution: def containsDuplicate(self, nums: List[int]) -> bool: - unique_nums = set(nums) - return len(unique_nums) != len(nums) + return len(set(nums)) != len(nums)