반응형
[백준] Sil4 | 스택 | 9012 괄호 Python
https://www.acmicpc.net/problem/9012
구상
- 유형 : 스택
- 전에 풀었던 햄버거 만들기 문제에서 썼던 스택에 쌓아두고 지우기 방식 사용!
트러블 슈팅
- 파이썬은 문자열 마지막꺼 지워야 할 때는 그냥 리스트로 담아서 pop하는 게 쉽다 . . .
문자열로 굳이 해보려다가 슬라이싱 한바탕 헤매다 옴(마지막 두글자 삭제하는 부분이, 삭제가 아니라 그거 제외하고 다시 저장하는 식으로 구현해야 해서 잘 안됐음)
코드
# v1 : 스택
#전에 풀었던 햄버거 만들기 문제에서 썼던 스택에 쌓아두고 지우기 방식 사용!
# TS : 문자열 마지막꺼 지워야 할 때는 그냥 리스트로 담아서 pop하는 게 쉽다 . . .
import sys
input = sys.stdin.readline
N = int(input())
ps_arr = [input().strip() for _ in range(N)]
for ps in ps_arr :
#VPS인지 판단
stack = []
for letter in ps : #한글자씩 순회
stack.append(letter)
#이번 문자로 괄호가 하나 완성되었다면 완성된 괄호 제거
if 2 <= len(stack) :
if stack[-2] == "(" and stack[-1] == ")" :
stack.pop()
stack.pop()
#이번 문자열이 VPS인가 출력
print("NO" if stack else "YES")
반응형
'DSA > Algorithm' 카테고리의 다른 글
[백준] Sil3 | 정렬? | 20291 파일정리 Python (0) | 2024.05.27 |
---|---|
[백준] Sil4 | 스택? | 10828 스택 Python (0) | 2024.05.27 |
[백준] Gol4 | 조합,스택 | 2800 괄호 제거 Python (0) | 2024.05.27 |
[백준] Sil2 | 이진탐색 | 18113 그르다 김가놈 Python (0) | 2024.05.21 |
[백준] Gol4 | BFS, 이진탐색? | 2412 암벽등반 Python (0) | 2024.05.21 |