알고리즘

[백준] 1541. 잃어버린 괄호

담쏙 2021. 9. 28. 00:53
728x90

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

일단 덧셈을 먼저 다 해준 다음에 빼주면 되니까 '-'를 기준으로 split() 해준다. 리스트의 첫 원소에 숫자만 있을 수도, + 연산자가 같이 있을 수도 있으므로 일단 '+'를 기준으로 split() 한 뒤 더해준 결과를 answer에 저장한다. 그 뒤에 똑같이 '+'를 기준으로 split() 한 뒤 더해준 결과를 answer에서 계속 빼주면 된다.

 

처음에는 eval() 함수를 이용해서 풀려고 했는데.. 0으로 시작하는 숫자도 있어서 당연히 런타임 에러가 났다. 문제를 똑바로 읽자..... 

import sys
input = sys.stdin.readline
formula = input().split('-')
answer = sum(map(int, formula[0].split('+')))
for i in range(1, len(formula)):
    answer -= sum(map(int, formula[i].split('+')))
print(answer)

 

'알고리즘' 카테고리의 다른 글

[백준] 1744. 수 묶기  (0) 2021.09.29
[백준] 12904. A와 B  (0) 2021.09.28
[SWEA] 1949. [모의 SW 역랑테스트] 등산로 조성  (0) 2021.09.24
[백준] 1931. 회의실 배정  (0) 2021.09.24
[백준] 9935. 문자열 폭발  (0) 2021.09.18