https://www.acmicpc.net/problem/10799
10799번: 쇠막대기
여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저
www.acmicpc.net
풀이 과정
count = 아직 안끝난 쇠막대기의 개수
answer = 정답 이라고 하자.
'(' 인식시 일단 쇠막대기의 시작이라고 간주 => count += 1
')' 인식시 앞 문자가 '('이면 앞의 '('이 쇠막대기의 시작이 아니였으므로 count -= 1, 그 후 안끝난 쇠막대기들 자르니까 answer += count를 해주고, 앞 문자가 '('이 아니면 쇠막대기의 끝이므로 count -= 1, answer += 1를 해주면 된다.
코드
import sys
solve = list(input())
count = 0
answer = 0
for i in solve:
if i == '(':
count += 1
elif i == ')':
if stack[-1] == '(':
count -= 1
answer += count
else:
count -= 1
answer += 1
print(answer)
'알고리즘 문제 풀이 > 백준' 카테고리의 다른 글
백준 17299 - 오등큰수 [파이썬] (1) | 2022.03.26 |
---|---|
백준 17298 - 오큰수 [파이썬] (0) | 2022.03.25 |
백준 17413 - 단어 뒤집기2 [파이썬] (0) | 2022.03.23 |
백준 9093 - 단어 뒤집기 [파이썬] (0) | 2022.03.23 |
백준 1158 - 요세푸스 문제 [파이썬] (0) | 2022.03.23 |