문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
입력
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.
출력
첫째 줄에 정답을 출력한다.
전체코드(Python)
# 입력값을 받는다.
expression = input()
# -를 기준으로 모두 나눈다.
# (-뒤의 값을 가장 크게 만들어야 음수값이 커지므로 -를 기준으로나눠 진 숫자는 모두 합친다)
s = expression.split('-')
result = 0
# -로 나눈 리스트를 가지고 + 기준으로 나누면서 나눠진 숫자를 합한다.
for i in range(len(s)):
# 첫번째로 나온 값을 result로 초기화 한다.
if i == 0:
result=sum(list(map(int,s[i].split('+'))))
# 다음으로 나온 리스트 값은 음수로 나눠진 값이므로 무조건 뺀다.
else:
result-=sum(list(map(int,s[i].split('+'))))
# 결과를 반환한다.
print(result)
알아야할 함수
- string.split('-')
- 특정문자를 기준으로 문자열을 나누는 함수이다.
- map(int,s[i].split['+'])
- 두번째 인자를 첫번째 인자의 자료형으로 변환하는 함수이다.
혹시라도 정정할 내용이나 추가적으로 필요하신 정보가 있다면 댓글 남겨주시면 감사하겠습니다.
오늘도 Jindory 블로그에 방문해주셔서 감사합니다.
[ 참조 ]
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 11725번 : 트리의 부모 찾기(Python) (0) | 2022.03.17 |
---|---|
[백준] 10026번 : 적록색약(Python) (0) | 2022.03.17 |
[백준] 1725번 : 히스토그램 (0) | 2022.03.15 |
[백준] 2669번 : 직사각형 네개의 합집합의 면적 구하기(Python) (0) | 2022.03.14 |
[백준] 1389번 : 케빈 베이컨의 6단계 법칙(Python) (0) | 2022.03.13 |