Python/백준
#16 [백준/python] 1541번: 잃어버린 괄호
hyunnna
2023. 10. 23. 19:53
728x90
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
💫 문제 분석
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램
✔️ 코드분석
- 첫줄에 식이 주어짐 - ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어짐
- 가장 처음과 마지막은 문자
- 연속해서 두개이상의 연산자가 나타나지는 않고 5자리보다 많이 연속되는 숫자는 없음
- 입력으로 주어지는 식의 길이는 50보다 작거나 같
- 가 나온 자리에 괄호를 넣으면 양수인 수도 음수가 되므로 결과 값이 가장 적게 나온다
-를 기준으로 나누고 = 기준으로나눠 연산을 진행
3 + 4 + 11 - 8 + 9
1. - 기준으로 나눔
(3+4+11) (8+9)
2. +기준으로 나눠 연산
19 17
3. 사이에 마이너스 연산 진행
19 - 17
❗ 코드
exp = input().split('-') #'-'를 기준으로 split해서 exp 리스트에 저장
num = [] #'-'로 나눈 항들의 합을 저장할 리스트
for i in exp:
sum = 0
tmp = i.split('+') #덧셈을 하기 위해서 '+'를 기준으로 split
for j in tmp: #split한 리스트의 각 요소들을 더해줌
sum += int(j)
num.append(sum) #각 항의 연산 결과(덧셈)를 num에 저장
n = num[0] #식의 제일 처음은 숫자로 시작하기 때문에 0번째 값에서 나머지 값들을 빼준다
for i in range(1,len(num)): #1번째 값부터 n에서 빼준다
n -= num[i]
print(n)
🔴
tmp = i.split('+') # +기준으로 split