Skip to content

Commit 81970c2

Browse files
authored
Merge pull request #755 from aa601/main
[yeoju] Week 2
2 parents c11f6cb + 39f2db3 commit 81970c2

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

โ€Ž3sum/aa601.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# ์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„ : O(n^2), ๊ณต๊ฐ„๋ณต์žก๋„ : O(n)
2+
class Solution:
3+
def threeSum(self, nums: list[int]) -> list[list[int]]:
4+
nums.sort() # ๋‚ด์žฅํ•จ์ˆ˜ sort()์˜ ์‹œ๊ฐ„๋ณต์žก๋„ O(nlogn)
5+
result = [] # ๊ณต๊ฐ„๋ณต์žก๋„ O(n)
6+
# ์‹œ๊ฐ„๋ณต์žก๋„ O(n)
7+
for i in range(len(nums) - 2):
8+
if i > 0 and nums[i] == nums[i - 1]:
9+
continue
10+
r = len(nums) - 1
11+
l = i + 1
12+
# i๋ฅผ ๊ธฐ์ค€์œผ๋กœ l๊ณผ r์„ ํƒ์ƒ‰ํ•˜๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(n)
13+
while l < r:
14+
if nums[i] + nums[l] + nums[r] < 0:
15+
l += 1
16+
elif nums[i] + nums[l] + nums[r] > 0:
17+
r -= 1
18+
else:
19+
result.append([nums[i], nums[l], nums[r]])
20+
while l < r and nums[l] == nums[l + 1]: # ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐ˜๋ณต๋ฌธ, ์ด๋ฏธ ์ง„ํ–‰๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ํƒ์ƒ‰ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์ถ”๊ฐ€๋˜์ง€ ์•Š์Œ
21+
l += 1
22+
while l < r and nums[r] == nums[r - 1]:
23+
r -= 1
24+
l += 1
25+
r -= 1
26+
return result
27+

โ€Žclimbing-stairs/aa601.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# ์‹œ๊ฐ„๋ณต์žก๋„ : O(n), ๊ณต๊ฐ„๋ณต์žก๋„ : O(1)
2+
3+
class Solution:
4+
def climbStairs(self, n: int) -> int:
5+
a = 1
6+
b = 2
7+
if (n == 1):
8+
return 1
9+
elif (n == 2):
10+
return 2
11+
for i in range(n - 2):
12+
c = a
13+
a = b
14+
b = c + b
15+
return (b)
16+

โ€Žvalid-anagram/aa601.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(n), ๊ณต๊ฐ„ ๋ณต์žก๋„ : O(n)
2+
class Solution:
3+
def isAnagram(self, s: str, t: str) -> bool:
4+
tmp = {}
5+
# tmp์— char:ํšŸ์ˆ˜ ํ˜•์‹์œผ๋กœ ์ €์žฅ
6+
for key in s:
7+
if key in tmp:
8+
tmp[key] += 1
9+
else:
10+
tmp[key] = 1
11+
# t ๋ฌธ์ž์—ด์„ ๋Œ๋ฉด์„œ ๋‚˜ํƒ€๋‚˜๋Š” char์— ๋Œ€ํ•œ tmp์˜ ํšŸ์ˆ˜ ์ฐจ๊ฐ
12+
# tmp์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” char ๋ฐœ์ƒ ์‹œ return False
13+
for key in t:
14+
if key in tmp:
15+
tmp[key] -= 1
16+
else:
17+
return False
18+
# tmp๋ฅผ ๋Œ๋ฉด์„œ value๊ฐ’์ด ๋ชจ๋‘ 0์ธ์ง€ ํ™•์ธ, ๋ชจ๋‘ 0์ผ ๊ฒฝ์šฐ s์™€ t๋Š” anagram์ด๋‹ค
19+
for i in tmp:
20+
if (tmp[i] != 0):
21+
return False
22+
return True
23+

0 commit comments

Comments
ย (0)