diff --git a/3sum/yyyyyyyyyKim.py b/3sum/yyyyyyyyyKim.py new file mode 100644 index 000000000..c2f63ff85 --- /dev/null +++ b/3sum/yyyyyyyyyKim.py @@ -0,0 +1,36 @@ +class Solution: + def threeSum(self, nums: List[int]) -> List[List[int]]: + + answer = [] + + # 정렬 + nums.sort() + + for i in range(len(nums)-2): + # i 중복제거 + if i > 0 and nums[i] == nums[i - 1]: + continue + + left = i+1 + right = len(nums)-1 + + while left < right: + if nums[i] + nums[left] + nums[right] == 0: + answer.append([nums[i],nums[left],nums[right]]) + + # left 중복제거 + while left < right and nums[left] == nums[left+1]: + left += 1 + # right 중복제거 + while left < right and nums[right] == nums[right-1]: + right -= 1 + + left += 1 + right -= 1 + + elif nums[i] + nums[left] + nums[right] < 0: + left += 1 + else: + right -= 1 + + return answer diff --git a/climbing-stairs/yyyyyyyyyKim.py b/climbing-stairs/yyyyyyyyyKim.py new file mode 100644 index 000000000..255a9d44d --- /dev/null +++ b/climbing-stairs/yyyyyyyyyKim.py @@ -0,0 +1,12 @@ +class Solution: + def climbStairs(self, n: int) -> int: + + if n <= 3: + return n + + a, b = 1, 2 + + for i in range(3,n+1): + a, b = b, a+b + + return b diff --git a/product-of-array-except-self/yyyyyyyyyKim.py b/product-of-array-except-self/yyyyyyyyyKim.py new file mode 100644 index 000000000..4c3c0b0f9 --- /dev/null +++ b/product-of-array-except-self/yyyyyyyyyKim.py @@ -0,0 +1,16 @@ +class Solution: + def productExceptSelf(self, nums: List[int]) -> List[int]: + + answer = [1]*len(nums) + + left = 1 + for i in range(len(nums)): + answer[i] *= left + left *= nums[i] + + right = 1 + for i in range(len(nums)-1,-1,-1): + answer[i] *= right + right *= nums[i] + + return answer diff --git a/valid-anagram/yyyyyyyyyKim.py b/valid-anagram/yyyyyyyyyKim.py new file mode 100644 index 000000000..ffdcf4647 --- /dev/null +++ b/valid-anagram/yyyyyyyyyKim.py @@ -0,0 +1,6 @@ +class Solution: + def isAnagram(self, s: str, t: str) -> bool: + + if sorted(s) == sorted(t): + return True + return False diff --git a/validate-binary-search-tree/yyyyyyyyyKim.py b/validate-binary-search-tree/yyyyyyyyyKim.py new file mode 100644 index 000000000..84e7bdc3a --- /dev/null +++ b/validate-binary-search-tree/yyyyyyyyyKim.py @@ -0,0 +1,19 @@ +# Definition for a binary tree node. +# class TreeNode: +# def __init__(self, val=0, left=None, right=None): +# self.val = val +# self.left = left +# self.right = right +class Solution: + def isValidBST(self, root: Optional[TreeNode]) -> bool: + + # 깊이우선탐색(dfs), 재귀 + def dfs(node, min_val, max_val): + if not node: + return True + if not (min_val < node.val < max_val): + return False + return (dfs(node.left, min_val, node.val) and + dfs(node.right, node.val, max_val)) + + return dfs(root, float('-inf'), float('inf'))