본문 바로가기
카테고리 없음

[백준] 1541번: 잃어버린 괄호 - python

by 육빔 2024. 3. 27.
728x90

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

사실 처음에 이게 어떻게 -35가 되는지 의문이었다. 

55-50+40
 
55-5(0+40) = -145가 아닌가..
라는 식으로 창의력 테스트하다가 단순히 분리하면 된다는 사실을 파악하고 코드를 작성했다.

우선 -를 제일 나중에 하는게 최소값을 찾을 수 있어서

먼저 - 기준으로 분리를 진행하였다. 배열에는 +가 들어가있는 집합으로 나눠지게 되겠고, 이제 각자 집합을 last라는 리스트를 생성해 차곡차곡 전부 더하면서 저장을 해준다. 

마지막에는 첫번째꺼에서 나머지 전부를 더한 값을 빼주게 되면 우리가 원하는 값이 나오게 된다.

 

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

arr = []
for i in n:
    arr.append(i.split("+"))

last = []
for i in arr:
    tmp = 0
    for j in i:
        tmp+= int(j)
    last.append(tmp)

print(last[0]-sum(last[1:]))

 

완성