잃어버린 괄호(백준 1541번)
💡 **Check Point !
( 해당사항 ✓체크 )
막힘 없이 수월하게 풀린 문제인가?
1시간이내로 풀렸던 문제인가?✓
1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
시간을 써도 도무지 풀 수 없는 문제인가?
솔루션을 찾아봤는가?✓
난이도 체감
최상
상
중
하✓
이해도
완벽히 이해✓
다소 헷갈리는 부분들이 있음
이해 못함
문제
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
나의 풀이
1
2
3
4
5
6
7
8
9
10
expression=input().split('-')
exp_list=list(map(int,expression[0].split('+')))
answer=sum(exp_list)
for i in range(1,len(expression)):
exp_list=list(map(int,expression[i].split('+')))
answer-=sum(exp_list)
print(answer)
- ‘-’를 기준으로 식을 나누고, 식들을 모두 계산한 이후 첫번째 값에서 그 이후 값들을 모두 빼는 형태로 정답을 계산하려고 생각했다.
- 솔루션을 찾아봤던 이유는 계속 syntax error가 발생했기 때문이다. 솔루션을 찾아본 결과,
eval()
함수가 원인이었다.eval(’09-1’)
과 같이 숫자 앞에 0이 들어가면 오류가 발생하는 것이다. - 따라서 ‘-’로 식을
split()
한 이후, 각 식을 ‘+’로 다시split()
하여 계산했다.
This post is licensed under CC BY 4.0 by the author.