[BOJ] 백준 10799 쇠막대기

태환·2024년 2월 25일
0

Coding Test

목록 보기
81/151

📌 [BOJ] 백준 10799 쇠막대기

📖 문제

📖 예제

📖 풀이

arr = input()

stk = []
ans = 0
for i in range(len(arr)):
  if arr[i] == '(':
    stk.append(i)
  else:
    if arr[i-1] == '(':
      stk.pop()
      ans += len(stk)
    else:
      stk.pop()
      ans += 1

print(ans)

다음 2가지를 고려해야한다.
1. '(' 들어온 경우 이를 stk에 추가한다.
2. ')' 들어온 경우 다음 2가지를 고려한다.
2-1. 직전에 '(' 들어온 경우 stk에서 마지막 '(' 을 제거한 후 stk 길이 만큼 ans에 더한다.
2-2. 직전에 ')' 들어온 경우 stk에서 마지막 '(' 을 제거한 후 1 만큼 ans에 더한다.

profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글