Skip to content

Commit 37aea7d

Browse files
committed
FEAT : solved 3 problems
1 parent c8e3ac8 commit 37aea7d

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

container-with-most-water/aa601.py

Lines changed: 15 additions & 0 deletions
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
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution:
2+
def lengthOfLIS(self, nums: List[int]) -> int:
3+
dp = [1 for _ in range(len(nums))]
4+
prv = [-1 for _ in range(len(nums))]
5+
for i in range(len(nums)):
6+
for j in range(i + 1, len(nums)):
7+
if nums[i] < nums[j]:
8+
if dp[i] + 1 > dp[j]:
9+
dp[j] = dp[i] + 1
10+
"""
11+
prv [-1, -1, -1, 2, 2, 3, 5, 5]
12+
dp [ 1, 1, 1, 2, 2, 3, 4, 4]
13+
nums[10, 9, 2, 5, 3, 7, 101, 18]
14+
nums[2] = 2
15+
nums[4] = 3
16+
nums[5] = 7
17+
18+
#dp[j] = max(dp[i] + 1, dp[j])
19+
# dp[i] + 1 <= dp[j]일 때 dp[j] 갱신X
20+
# LIS길이가 더 적거나 같은 상황. => LIS배열이 업데이트X
21+
"""
22+
return max(dp)
23+

valid-parentheses/aa601.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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
19+

0 commit comments

Comments
 (0)