백준1541(파이썬) - 잃어버린 괄호
resilient
·2021. 6. 10. 11:50
728x90
반응형
https://www.acmicpc.net/problem/1541
- 모든 문제를 읽을 때, 마지막에 최솟값을 구하는지, 최댓값을 구하는지를 잘 살펴봐야한다.
- 이 문제는 최솟값을 구하라고 하였는데, +와 - 밖에 없다.
- 그러면? 처음 - 뒤에 모든 값을 빼주면 되는 것이다.
- 먼저 출력을 결과값을 ans =0으로 초기화 해주고 괄호의 먼저 계산하는 특징을 이용해서, - 뒤에는 ans에서 다 -를 시켜주면된다. - 앞에는 일단 더해야 하기 때문에 +를 해주면 된다.
- 여기서 핵심은 입력값이 문자열로 주어지기때문에, 파싱을 하고 int 값을 씌우면 무조건 양수라는 점이다. 그렇기 때문에 음수,양수를 신경쓰지 않고 위에 설명한대로 -, 혹은 + 를 해주면 된다.
import sys
input = sys.stdin.readline
data = input().split('-')
ans = 0
#-가 처음으로 나올 때까지 - 앞에 숫자들은 다 더해준다.
for i in data[0].split('+'):
ans += int(i)
# - 가 나온 뒤로는 -가 나오거나,
# + 가 나와도 어차피 괄호로 - 처리 해주면 되기 때문에 값을 다 빼준다.(최솟값이 나와야함)
for i in data[1:]:
# - 처리는 안해줘도 된다 어차피 맨 앞에서 -로 끊어서 이미 다 양수처리
for j in i.split('+'):
ans -= int(j)
print(ans)
반응형
'자료구조 & 알고리즘 > 백준(Baekjoon)' 카테고리의 다른 글
백준11729(파이썬) - 하노이 탑 이동 순서 (0) | 2021.06.14 |
---|---|
백준1107(파이썬) - 리모컨 (0) | 2021.06.11 |
백준2504(파이썬) - 괄호의 값 (0) | 2021.06.09 |
백준2630(파이썬) - 색종이 만들기 (0) | 2021.06.08 |
백준1932(파이썬) - 정수 삼각형 (0) | 2021.06.07 |