알고리즘
Python에서의 스택
lewns2
2021. 3. 21. 02:52
스택(Stack) : LIFO(Last in First Out), 가장 나중에 쌓은 데이터를 먼저 뺄 수 있는 데이터 구조
파이썬은 스택 자료형을 별도로 제공하지 않는다. 대신 리스트가 스택의 모든 연산을 지원한다.
- push( ) : 요소를 컬렉션에 추가 (=list.append)
- pop( ) : 아직 제거되지 않은 가장 최근에 삽입한 요소를 제거
대표 문제 : 괄호 판별 <LeetCode 20.Valid Parentheses>
s = input()
stack = []
table = {
')': '(',
'}': '{',
']': '['
}
for char in s:
if char not in table:
stack.append(char)
print(stack)
elif char not in stack and table[char] != stack.pop():
print(False)
코드 설명
- '(', '{', '[' 가 들어오면 stack 리스트에 쌓음.
- ')', '}', ']' 가 들어오면 각각의 value와 비교( ex) '[' vs ']'의 value)
- 일치하지 않는다면, False
728x90
반응형