[백준] 10799번 쇠막대기 _ python

메링·2022년 8월 10일
0

알고리즘 문제

목록 보기
21/22

문제 : https://www.acmicpc.net/problem/10799

문제를 읽어도 스택을 써야하나 싶은 정도 밖에 방법이 안 떠올라서 바로 포기..
풀이를 보니 생각보다 너무 간단해서 놀랐다.
스택을 이용한 방법이다.

laser_lst = list(input())
stack = []
piece = 0

for i in range(len(laser_lst)):
    if laser_lst[i] == '(':		# (는 그냥 스택에 넣는다.
        stack.append('(')
    else:	# )가 나온 경우
        if laser_lst[i-1] == '(':    # 레이저
            stack.pop()
            piece += len(stack)		# 스택에 쌓인 개수(쇠막대기 개수)만큼 숫자 더해준다.
        else:	# 쇠막대기 끄트머리 - 하나만 추가
            stack.pop()
            piece += 1

print(piece)
profile
https://github.com/HeaRinKim

0개의 댓글