Skip to content

Commit

Permalink
Merge pull request #752 from jinah92/main
Browse files Browse the repository at this point in the history
[jinah92] Week 2
  • Loading branch information
jinah92 authored Dec 21, 2024
2 parents fe2a645 + 969b9fb commit 32d3a22
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
20 changes: 20 additions & 0 deletions 3sum/jinah92.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# 공간복잡도 : O(1), 시간복잡도 : O(N^2)
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
three_sums = set()
nums.sort()

for i in range(len(nums)-2):
low, high = i + 1, len(nums)-1
while low < high:
three_sum = nums[i] + nums[high] + nums[low]
if three_sum < 0:
low += 1
elif three_sum > 0:
high -= 1
else:
three_sums.add((nums[i], nums[high], nums[low]))
low, high = low+1, high-1

return list(three_sums)

11 changes: 11 additions & 0 deletions climbing-stairs/jinah92.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# 공간복잡도: O(1), 시간복잡도: O(n)
class Solution:
def climbStairs(self, n: int) -> int:
if n < 3:
return n

prev, curr = 1, 2
for num in range(3, n+1):
prev, curr = curr, prev + curr

return curr
14 changes: 14 additions & 0 deletions valid-anagram/jinah92.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# 공간복잡도: O(n), 시간복잡도: O(n)
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
char_set_1, char_set_2 = {}, {}

for ch in s:
char_set_1[ch] = 0 if ch not in char_set_1 else char_set_1[ch] + 1

for ch in t:
char_set_2[ch] = 0 if ch not in char_set_2 else char_set_2[ch] + 1

# dictionary의 모든 요소 종류와 개수가 일치해야 함
return char_set_1 == char_set_2

0 comments on commit 32d3a22

Please sign in to comment.