BOJ/Python

백준 1541번 잃어버린 괄호 파이썬

띵지니어 2022. 12. 2. 20:49

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

내 답안

x = input().rstrip().split('-')
result = [sum(map(int, i.split('+'))) for i in x]
print(result[0] - sum(result[1:]))

REVIEW

 

문제를 보면서 어떻게 하면 잘 계산을 할 수 있을까 고민을 하였다.

내가 생각한 순서는 이렇다.

1번 "-" 단위로 끊어서 리스트를 만든다. -> ["55", "50+40"]

2번 각 원소들을 "+" 단위로 끊고 문자열로 저장된 리스트 항목들을 map을 활용하여 계산 해준다. -> [55, 90]

3번 리스트의 맨 첫번째 항목과 첫번째를 제외한 나머지를 빼준다 -> 55-90

정답 : -35


 

예제 입력이 "60+70-80+60+80+100-110+20-110" 라고 가정하자.

1번 ["60+70", "80+60+80+100", "110+20", "110"]

2번 [130, 320, 130, 110]

3번 130 - (320+130+110)

정답 : -430