알고리즘/TIL
[99클럽 코테 스터디 36일차 TIL] 스택
모모_모
2024. 6. 25. 11:20
✏️ 오늘의 문제 : 921. Minimum Add to Make Parentheses Valid
📌 주안점
- 입력은 '(' 혹은 ')'이 보장되고, 괄호가 닫혔는지 확인하고 빠진 공간을 확인하는 문제이다
- stack 자료구조를 이용해서 '('의 입력에는 top + 1, ')'의 입력에는 top - 1을 해준다.
- 만약 top <= 0 인 경우에 ')' 입력이 들어온다면, '('를 하나 추가해주어야 한다.
- 문자열 끝까지 순회를 마친 후 top만큼 ')'를 추가해주어야 한다.
📌 해결방법
class Solution:
def minAddToMakeValid(self, s: str) -> int:
ans = 0
top = 0
for i in s:
if i == "(":
top += 1
else:
if top <= 0:
ans+=1
else:
top -= 1
return ans+top