본문 바로가기

알고리즘

백준) 잃어버린 괄호-python

 

https://www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

a = input().split('-')

num = []

for i in a:
  cnt = 0
  s = i.split('+')

  for j in s:
    cnt += int(j)
  num.append(cnt)

n = num[0]
for i in range(1, len(num)):
    n -= num[i]
print(n)

사실 이문제에서 시간이 좀 오래 걸렸다.

 

가장먼저 괄호라는 기능을 어떻게 구현할 것인가에 대한 고민이 이어졌다.

약 40분 동안 고민한 결과 입력을 받자마자 '-'를 기준으로 스플릿,

그리고 for문을 돌고 '+'를 기준으로 나누고 다시 for문.

이렇게 '+'를 계산해주고,

다음 for문으로 마이너스를 계산해주면 된다.

 

아무래도 그리디 쪽이 약한 것 같다.