Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- DFS
- 재귀
- GROUP BY
- 브루트포스
- 플로이드-워셜
- 그래프 탐색
- 다이나믹프로그래밍
- 다시
- 그래프 이론
- 자료구조
- MST
- 다익스트라
- 시뮬레이션
- 백트래킹
- 서브쿼리
- 트리
- 크루스칼
- 우선순위큐
- 누적합
- join
- 해시
- 그리디
- 에라토스테네스의 체
- 수학
- 다이나믹 프로그래밍
- BFS
- 분할정복
- DP
- 투포인터
- 구현
Archives
- Today
- Total
기록하고 까먹지 말기
1541 본문
날짜 : 2022. 09. 23
사용 언어 : python
문제
코드
import sys
ex = str(sys.stdin.readline().split()) # 식 입력
ex = ex[2:-2]
detail = []
plus = []
minus = []
t = str()
for i in ex:
if i != '+' and i != '-': # 숫자인 경우
t = t + i
else: # 부호인 경우
detail.append(int(t)) #숫자 저장
detail.append(i) # 부호 저장
t = str()
detail.append(int(t))
#print(detail)
go = 0
for i in detail:
if i == '-':
go = 1
elif i == '+':
continue
else :
if go == 1:
minus.append(i)
else:
plus.append(i)
p = 0
m = 0
#print(plus)
#print(minus)
for i in range(len(plus)):
p += plus[i]
for i in range(len(minus)):
m += minus[i]
result = p - m
print(result)
#print(detail)
풀이를 하면서 어떻게 최소를 구할까, 괄호를 실제로 넣어서 풀어야 하나 생각했다.
그러나 생각해보니 괄호는 식의 우선순위를 위해 작성된거고, 조건은 총합의 최소값을 만드는 것이었기 때문에 '-'가 하나만 나오면 그 이후 정수는 무조건 다 절댓값으로 더해서 빼면 되는 것이었다.
그래서 detail을 통해 부호와 숫자를 구분하여 저장한 후 plus, minus의 리스트로 분류하여 풀었다.
알게된 점
-
참고 사이트
-