#문제
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
#풀이 & 학습한 내용
"식의 값을 가능한 한 작게 만드는 문제"입니다. 그러기 위해서는 -수식을 기준으로 모두 괄호를 묶어주면 됩니다. 따라서 문자열을 split('-')로 나눈뒤에 나눠진 각각의 수식을 eval()함수를 통해 계산하려 했으나, 수가 0으로 시작할 수 있어서 문법오류가 발생했습니다. 따라서 생각을 하다가 -로 나눠진 수식을 다시 +로 나눠준 뒤 형변환(int)을 해서 더해주기로 했습니다.
#소스코드
|
1
2
3
4
5
6
7
8
|
exp = input().split('-') #'-'를 기준으로 수식분리
#'-'를 기준으로 분리된 수식 중 맨앞에 있는 수식만 양수
ans = sum(map(int,exp[0].split('+')))
for i in range(1,len(exp)):
ans -= sum(map(int,exp[i].split('+'))) # 분리된 수식의 덧셈을 계산하여 빼준다
print(ans)
|
cs |
github.com/HoYoungChun/Algorithm_PS/blob/master/Greedy/BOJ_1541.py
HoYoungChun/Algorithm_PS
Baekjoon Online Judge, Programmers problem solving by Python, C++ - HoYoungChun/Algorithm_PS
github.com
'Algorithm > Greedy' 카테고리의 다른 글
| [Python] 백준 13305번 : 주유소 (S4) - 그리디단계별5 ★ (0) | 2021.01.27 |
|---|---|
| [Python] 백준 11399번 : ATM (S3) - 그리디단계별3 (0) | 2021.01.27 |
| [Python] 백준 1931번 : 회의실 배정 (S2) - 그리디단계별2 (0) | 2021.01.27 |
| [Python] 백준 11047번 : 동전 0 (S1) - 그리디단계별1 (0) | 2021.01.27 |
| [Python] TCT: 왕실의 나이트 (0) | 2021.01.24 |