import sys
input = list(sys.stdin.readline())
open = 0
result = 0
for i in range(len(input)):
if input[i] == '(':
open += 1
elif input[i] == ')':
open -= 1
if input[i-1] == '(':
result += open
else:
result += 1
print(result)
괄호를 이용해 쇠막대기의 길이?를 결정하고 ()를 이용해 쇠막대기를 자르는 문제
import sys
input = list(sys.stdin.readline())
open = 0 # 현재 열려있는(?) 괄호 개수
result = 0 # 결과값
for i in range(len(input)):
if input[i] == '(':
open += 1
elif input[i] == ')':
open -= 1
if input[i-1] == '(': # 즉, '('다음에 바로 ')'가 나온 경우
result += open
else:
result += 1
print(result)
사실 내가 이해한 방식으로 구현해봤는데 시간초과가 떴다ㅠㅠㅠ (진짜 오래걸렸는뎈ㅋㅋㅋㅋ) 그래서 결국 구글링,,ㅎ 나보다 문제를 더 쉽게 이해한 다른 사람들의 방식을 보고 다시 처음부터 코딩했다😥 역시 문제를 읽고 무작정 코딩하는 것보다 문제를 확실하게 이해하고 코딩하기 전에 알고리즘을 머리속으로 그려보는 연습이 더 필요하다는 것을 느꼈다..!
(참고한 링크: https://ilgls1.tistory.com/16)