Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

개발하지연

[백준 1541번] 잃어버린 괄호 (python) 본문

알고리즘

[백준 1541번] 잃어버린 괄호 (python)

JeongJiyeon 2021. 7. 14. 15:54

문제

세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.

그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.

괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.

 

기록

(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한 뒤 + 계산만 먼저 다하고, 나중에 - 계산 수행했다.

Comments