728x90
https://www.acmicpc.net/problem/1541
💫 문제 분석
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램
✔️ 코드분석
- 첫줄에 식이 주어짐 - ‘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
'Python > 백준' 카테고리의 다른 글
#18 [python/백준] 2163번: 초콜릿 자르기 (0) | 2023.10.25 |
---|---|
#17 [python/백준] 11501번: 주식 (0) | 2023.10.24 |
#15 [python] 2457번: 공주님의 정원 (0) | 2023.10.22 |
#14 [python] 11399번: ATM (0) | 2023.10.21 |
#13 [python] 1026번: 보물 (0) | 2023.10.21 |