Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions container-with-most-water/mandel-17.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

포인터 문제를 깔끔하게 풀이하신 것 같습니다 👍

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
class Solution:
def maxArea(self, height: List[int]) -> int:
max_area = 0
left, right = 0, len(height) - 1
while left < right:
area = (right - left) * min(height[left], height[right])
max_area = max(area, max_area)
if height[left] <= height[right]:
left += 1
else:
right -= 1
return max_area

44 changes: 44 additions & 0 deletions valid-parentheses/mandel-17.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

배열 기반 스택 구현한 풀이 잘 봤습니다!
다음 번에는 파이썬의 내장 list를 스택으로 활용하여 풀이를 해보셔도 좋을 것 같습니다.
이번 주도 수고 많으셨습니다. 😃

Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
class ArrayStack:
def __init__(self, capacity):
self.capacity = capacity
self.array = [None] * self.capacity
self.top = -1

def isEmpty(self):
return self.top == -1

def isFull(self):
return self.top == self.capacity - 1

def push(self, item):
if not self.isFull():
self.top += 1
self.array[self.top] = item
else:
pass

def pop(self):
if not self.isEmpty():
self.top -= 1
return self.array[self.top+1]
else:
pass

class Solution:
def isValid(self, s: str) -> bool:
stack = ArrayStack(100)
for ch in s:
if ch in ('(', '[', '{'):
stack.push(ch)
elif ch in (')', ']', '}'):
if stack.isEmpty():
return False
else:
left = stack.pop()
if (ch == ')' and left != '(') or \
(ch == ']' and left != '[') or \
(ch == '}' and left != '{'):
return False
return stack.isEmpty()