개발하지연
[백준 1541번] 잃어버린 괄호 (python) 본문
문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
기록
(greedy 4일차) 이 문제는 식의 값을 최소로 만들어야 하기 때문에 뺄셈을 최대한 큰 수로 할 수 있도록 해야한다. 그래서 모든 +를 묶어서 계산하고 마지막에 뺄셈을 하여 빼는 값을 최대가 되도록 했다.
참고로 eval 사용해 풀어서 냈다가 SyntaxError 났다. 문제에 '수는 0으로 시작할 수 있다' 조건이 있었는데 eval 함수에서 04와 같은 숫자가 들어가면 SyntaxError가 발생한다는 점이 원인! 따라서 직접 계산하도록 수정했다.
코드
exp = input().split('-')
# minus 제외한 모든 plus 계산
exp_onlyminus = [sum(list(map(int, x.split('+')))) for x in exp]
# minus 계산
result = exp_onlyminus[0]-sum(exp_onlyminus[1:])
print(result)
- 로 split한 뒤 + 계산만 먼저 다하고, 나중에 - 계산 수행했다.
'알고리즘' 카테고리의 다른 글
[백준 16953번] A -> B (python) (0) | 2021.07.16 |
---|---|
[백준 20365번] 블로그2 (python) (0) | 2021.07.14 |
[백준 1931번] 회의실 배정 (python) (0) | 2021.07.14 |
[백준 20115번] 에너지 드링크 (python) (0) | 2021.07.13 |
[백준 11508번] 2+1 세일 (python) (0) | 2021.07.13 |
Comments