반응형
https://www.acmicpc.net/problem/1541
잃어버린 괄호 문제
+와 -로 이루어진 숫자 계산식에 괄호를 쳐서 값을 최소로 만드는 문제
단순 계산 아이디어를 떠올려서 split을 이용해 풀 수 있었다.
📌문제 접근 포인트
1. +와 -로 이루어진 숫자 계산식에 괄호를 쳐서 최솟값을 만들려 한다는 건 즉 - 사이의 숫자들을 모두 더해서 빼주면 된다는 뜻이다.
예를 들어 25-20+15-5+10+15 이런 숫자가 있다면 최소로 만들어주려면 25 - (20 + 15) - (5 + 10 + 15)로 만들어서 계산하면 -40으로 최소를 얻을 수 있다.
2. split을 통해 먼저 -를 기준으로 나누어주고, 나누어진 리스트를 더해주기 위해서 각각 + 로 나누고, 각 값들을 더해준 요소들을 리스트에 모아준다.
3. -를 기준으로 빼줘야 하니 리스트 맨 앞의 숫자에서부터 나머지 숫자들을 빼나 가면 최솟값을 구할 수 있다.
⚙ 내가 푼 정답 코드
import sys
S = sys.stdin.readline().strip().split('-') # - 기준으로 괄호를 치면 최소로 만들 수 있음
temp = []
for i in S: # 각 요소에 대해
cnt = 0
for j in i.split('+'): # +로 짼 요소들을
cnt += int(j) # 더하고
temp.append(cnt) # 모아주자
# 모아준 temp들을 맨 앞 인덱스 제외하고 전부 빼면 최소값
result = temp[0]
for i in temp[1:]:
result -= i
print(result)
반응형
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준 12931] 두 배 더하기 (python) (1) | 2023.05.09 |
---|---|
[백준 2667] 단지번호붙이기 (python) (0) | 2023.05.07 |
[백준 7677] Fibonacci (python) (0) | 2023.05.04 |
[백준 10026] 적록색약 (python) (0) | 2023.05.02 |
[백준 1461] 도서관(python) (0) | 2023.05.02 |
댓글