티스토리 뷰

📚 문제

입력

출력

예제 입력 1

)))()

예제 출력 1

3

예제 입력 2

)(()

예제 출력 2

2

예제 입력 3

))()((

예제 출력 3

4

예제 입력 4

)(()(()))

예제 출력 4

1

🧑🏻‍💻 풀이 과정

  • 입력 받은 괄호를 하나씩 꺼내면서 (이면 arr에 저장하자.
  • )이면, arr의 길이가 1과 같다면 올바른 괄호니까 arr에서 pop해주고, arr의 길이가 0이면 (가 없었단 뜻으로 올바르지 않은 괄호이다. cnt를 1 증가시키자.
  • arr(가 남아있을 수 있으니까 cnt + len(arr)를 반환하자. 그게 곧 앞과 뒤에 붙여야 할 괄호의 최소 개수이다.
def process(word):
    arr = []
    cnt = 0
    for i in word:
        if i == '(':
            arr.append(i)
        elif i == ')':
            if len(arr) == 0:
                cnt += 1
            else:
                arr.pop()
    return cnt + len(arr)


print(process(input()))
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함