[BOJ] 10799. 쇠막대기

Jimeaning·2023년 4월 4일
0

코딩테스트

목록 보기
50/143

Python3

문제

입출력

입출력 예시

주요 포인트

  1. ( 이 들어오면 스택에 ( 를 넣는다.
  2. ) 이 들어오면 스택에서 ) 를 뺀다.
    1) i-1이 ( 일 때, 즉 ()일 때 => 레이저 포인터
    스택의 길이를 구한다. 스택에 쌓인 ( 개수 == 쇠 막대기 개수
    2) 이전 문자도 ) 일 때 => 쇠막대기 끝
    ans를 1씩 증가시킨다.

최종 코드

n = list(input())
ans = 0
st = []

for i in range(len(n)):
    if n[i] == '(':
       st.append('(') 
    else:
        if n[i-1] == '(':
            st.pop()
            ans += len(st)
        else:
            st.pop()
            ans += 1
print(ans)

피드백

입력받을 때 sys.stdin.readline을 쓰니 오류가 났다.

profile
I mean

0개의 댓글