Skip to content

Commit 31704db

Browse files
authored
Merge pull request #920 from aa601/main
[yeoju] WEEK6
2 parents 3406d81 + 9dac8d1 commit 31704db

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed

container-with-most-water/aa601.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution:
2+
def maxArea(self, height: List[int]) -> int:
3+
right = len(height) - 1
4+
left = 0
5+
max_size = 0
6+
for line in range(len(height)):
7+
if left >= right:
8+
break
9+
cur_size = (right - left) * min(height[left], height[right])
10+
if height[left] < height[right]: # 왼쪽이 작으면 left 이동
11+
left += 1
12+
else:
13+
right -= 1
14+
max_size = max(max_size, cur_size)
15+
return max_size
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
"""
2+
prv [-1, -1, -1, 2, 2, 3, 5, 5]
3+
dp [ 1, 1, 1, 2, 2, 3, 4, 4]
4+
nums[10, 9, 2, 5, 3, 7, 101, 18]
5+
nums[2] = 2
6+
nums[4] = 3
7+
nums[5] = 7
8+
"""
9+
class Solution:
10+
def lengthOfLIS(self, nums: List[int]) -> int:
11+
dp = [1 for _ in range(len(nums))]
12+
prv = [-1 for _ in range(len(nums))]
13+
for i in range(len(nums)):
14+
for j in range(i + 1, len(nums)):
15+
if nums[i] < nums[j]:
16+
if dp[i] + 1 > dp[j]:
17+
dp[j] = dp[i] + 1
18+
return max(dp)

valid-parentheses/aa601.py

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution:
2+
def isValid(self, s: str) -> bool:
3+
# stack 활용, 짝이 맞으면 pop하기
4+
stack = []
5+
dic = dict(zip(")}]", "({[")) # close bracket : open bracket 형태로 사전 생성
6+
for char in s:
7+
if char in "({[": # open bracket인 경우 stack에 추가
8+
stack.append(char)
9+
elif char in ")}]" : # close bracket이면서
10+
if not stack or stack.pop() != dic[char]:
11+
return False
12+
13+
# len()함수 시간복잡도 먹음 O(n)
14+
# => not stack 사용하면 개선됨
15+
if len(stack) == 0: # stack이 비어있다면 모든 짝이 맞아서 pop되었으므로 true 반환
16+
return True
17+
else:
18+
return False

0 commit comments

Comments
 (0)