input.txt 를 기준으로 stack.pop() 을 공통으로 먼저하게 된다면 i 가 1 일때 pop 하기 이전에 stack 에는 '(' 하나만 있습니다.
그런데 pop 을 먼저 하고서 s[i-1] 로 접근하게 된다면
stack 이 비어있기 때문에 에러가 나야하지 않나 싶습니다.
물론 강의에서는 에러가 나지 않았기 때문에 이해가 잘 가지 않네요.
실제로 제가 짠 코드에서는 s[i-1] 로 접근하는게 아니라 그냥 s[-1] 로 접근하고 있는데 에러가 발생하네요. 다른 코드는 동일합니다.
아래는 저의 코드입니다.
for x in line :
if x == '(' :
stack.append(x)
else :
stack.pop()
if stack[-1] == '(' :
piecesCnt += len(stack)
else :
piecesCnt += 1
print(piecesCnt)