문제
https://www.acmicpc.net/problem/1541
- 괄호를 적절히 쳐서 주어진 식의 값을 최소로 만들기
- ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자
55-50+40
# 55-(50+40) = -35
주요 아이디어
- '-' 기준으로 식을 split하기
- '+' 연산자 처리 후 split된 단위로 '-' 처리
ex. 70+20-30-40
list[0] = 70+20 = 90
list[1] = 30
list[2] = 40
answer = 90 - 30 - 40 = 20
코드 구현 (Python 3)
더보기
op_str = input()
num_list = op_str.split('-')
for idx, num in enumerate(num_list):
num_total = num.split('+')
if len(num_total) == 1:
num_list[idx] = int(num)
else:
num_list[idx] = sum(list(map(int, num_total)))
answer = num_list[0]
for i in range(1, len(num_list)):
answer -= num_list[i]
print(answer)
제출 결과
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 10026. 적록색약 (0) | 2024.06.25 |
---|---|
[BOJ] 1351. 무한 수열 (0) | 2024.06.25 |
[BOJ] 7576. 토마토 (0) | 2024.06.25 |
[BOJ] 16401. 과자 나눠주기 (0) | 2024.06.25 |
[BOJ] 18870. 좌표 압축 (0) | 2024.06.25 |