You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import sys
arr = sys.stdin.readline().strip().split('-')
ans = []
for i in arr:
cnt = 0
n = i.split('+')
for j in n:
cnt = cnt + int(j)
ans.append(cnt)
a = ans[0]
for i in range(1,len(ans)):
a = a - ans[i]
print(a)
아이디어: -를 기준으로 자른다. 다음 -를 만나기전 까지는 무조건 + 이므로 -(a+b+c...) 이렇게 묶으면 최대한 큰 음수를 만들 수 있다.
따라서 split함수를 이용한다. 이제 -를 기준으로 잘려진 리스트 안의 연산을 해줘야 한다. +연산을 만나면 정수형으로 바꿔준뒤 cnt에 더해 준다. 이를 반복하면 ans에는 결과적으로 괄호에 묶인채로 잘려진 각 리스트 별로 +연산이 된 결과들이 담겨있다.
이제 해줄 연산은 - 밖에 남지 않았다.
따라서 반복문을 ans의 길이 만큼 반복해서 첫번째 값에서 모두 빼주면 정답이다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
아이디어: -를 기준으로 자른다. 다음 -를 만나기전 까지는 무조건 + 이므로 -(a+b+c...) 이렇게 묶으면 최대한 큰 음수를 만들 수 있다.
따라서 split함수를 이용한다. 이제 -를 기준으로 잘려진 리스트 안의 연산을 해줘야 한다. +연산을 만나면 정수형으로 바꿔준뒤 cnt에 더해 준다. 이를 반복하면 ans에는 결과적으로 괄호에 묶인채로 잘려진 각 리스트 별로 +연산이 된 결과들이 담겨있다.
이제 해줄 연산은 - 밖에 남지 않았다.
따라서 반복문을 ans의 길이 만큼 반복해서 첫번째 값에서 모두 빼주면 정답이다.
Beta Was this translation helpful? Give feedback.
All reactions