문제 보기: https://www.acmicpc.net/problem/1541
문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
입력
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.
출력
첫째 줄에 정답을 출력한다.
풀이 과정
문제의 제목에서 괄호를 이야기하고 있어서 괄호에 집중을 하게되는 문제이지만 이것에서 집중해야하는 것은 어느 곳을 기준으로 숫자를 끊어야하는지 입니다.
1. '-' 을 기준으로 하여 문자열을 받습니다.
2. 받은 문자열을 s 라는 변수에 저장하고 이것을 순서대로 모두 합치고 num라는 배열에 순서대로 저장합니다.
3. 마지막에 num 배열의 모든 숫자를 빼줍니다.
코드
a = input().split('-')
num = []
for i in a:
cnt = 0
s = i.split('+')
for j in s:
cnt += int(j)
num.append(cnt)
n = num[0]
for i in range(1, len(num)):
n -= num[i]
print(n)
'Algorithm' 카테고리의 다른 글
[백준_3052] 나머지 (0) | 2022.05.23 |
---|---|
[백준_9461] 파도반 수 (0) | 2022.05.20 |
[백준_9184] 신나는 함수 실행 (0) | 2022.05.18 |
[백준_11866] 요세푸스 문제 0 (0) | 2022.05.17 |
[백준_1003] 피보나치 함수 (0) | 2022.05.15 |