문제
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
입력
- 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.
출력
- 첫째 줄에 정답을 출력한다
문제 풀이
- 가장 작은 수를 만드는 방법은 -를 기준으로 나눈 후 다 더해서 -연산을 해줘야 함
- 예를 들어 24 - 40 + 50으로 가장 작은 수를 만드는 방법은 24 - (40 + 50)
- 따라서 -를 기준으로 각 수들을 나눈 후, 괄호 안에 있는 값들을 다 더한다
- 그 후 괄호 안에 있던 더한 값들을 0번 째 인덱스 값에서 차례대로 모두 빼준다
- 모두 빼준 후의 값 출력
코드
# -기준으로 문자열 나눠서 저장
minus = input().split('-')
data = []
for i in minus:
sum = 0
# -로 나뉜 후 +로 묶여있는 문자들도 각각 분해
plus = i.split('+')
# +로 연결되어있던 수들 더하기
for j in plus:
sum += int(j)
data.append(sum)
minus = data[0]
for i in range(1, len(data)):
minus -= data[i]
print(minus)
'Algorithm > 백준' 카테고리의 다른 글
| [Python] 백준 11305번 '주유소' (0) | 2023.01.18 |
|---|---|
| [Python] 백준 11399번 'ATM' (0) | 2023.01.17 |
| [Python] 백준 1931번 '회의실 배정' (0) | 2023.01.17 |
| [Python] 백준 16928번 '뱀과 사다리 게임' (DFS/BFS) (0) | 2023.01.09 |
| [Python] 백준 11047번 "동전 0" (그리디) (0) | 2023.01.04 |