Post
잃어버린 괄호(백준 1541번) | Gihun Son

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

💡 **Check Point !

( 해당사항 ✓체크 )

  1. 막힘 없이 수월하게 풀린 문제인가?

  2. 1시간이내로 풀렸던 문제인가?✓

  3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?

  4. 시간을 써도 도무지 풀 수 없는 문제인가?

  5. 솔루션을 찾아봤는가?✓


난이도 체감

  1. 최상

  2. 하✓


이해도

  1. 완벽히 이해✓

  2. 다소 헷갈리는 부분들이 있음

  3. 이해 못함

문제

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

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

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

Untitled

나의 풀이

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.