def solution(s):
answer = True
stk = []
for ch in s:
if ch == "(":
stk.append(ch)
else:
if stk:
stk.pop()
else:
return False
if stk:
return False
return True
특성 | 스택 (Stack) | 큐 (Queue) |
---|---|---|
동작 원리 | 후입선출(LIFO) | 선입선출(FIFO) |
데이터 삽입과 제거 | 맨 위에서 삽입 및 제거 | 뒤쪽에서 삽입, 앞쪽에서 제거 |
활용 | 함수 호출 시의 임시 데이터 저장, 수식의 괄호 검사, 뒤로가기 기능 등 | 작업 대기열, 프린터 대기열, 너비 우선 탐색(BFS) 등 |
주요 연산 | Push(데이터 추가), Pop(데이터 제거), Peek(데이터 조회), IsEmpty(비어있는지 확인), Size(크기 확인) 등 | Enqueue(데이터 추가), Dequeue(데이터 제거), Peek(데이터 조회), IsEmpty(비어있는지 확인), Size(크기 확인) 등 |
구현 | 배열 또는 연결 리스트 | 배열 또는 연결 리스트, 덱(Double-Ended Queue) |
스택으로 쉽게 문제를 해결할 수 있었다. 그러나 문제 해결 방식은 간단하지만, 이 방법을 생각해내는 과정이 어려웠다. 많은 문제를 풀어봐야 할 것 같다. 컴퓨팅사고력?을 더 키우기 위해 다양한 노력을 해봐야 할 것 같다.