[백준] 1541 잃어버린 괄호 - python

김지원·2021년 8월 21일
0

coding-test

목록 보기
2/25
post-thumbnail

📖 문제 링크

https://www.acmicpc.net/problem/1541

📃 문제 설명

그리디 알고리즘을 이용하는 문제로

+, -로 이루어진 식에서 괄호를 이용해 최소의 값을 구하면 되는 문제이다.

제한 사항으로

  • 처음과 마지막 문자는 숫자
  • 연속으로 두 개 이상의 연산자는 나타나지 않는다.
  • 5자리보다 많이 연속되는 숫자는 없다.
  • 숫자는 0으로 시작할 수 있다.

👨‍💻 문제 풀이

예제의 입력과 출력을 보고 처음에는 이해가 가지 않았다.
그래서 다른 예제를 만들어 풀고 있다가 깨달았다..😲

이 문제는 정말 간단하게도 -를 제외한 숫자들은 다 더하고
남은 숫자들을 다 뺄셈 처리해주면 된다!!

formula = input()
result = 0

minus_numbers = list()
plus_numbers = list(formula.split("-"))

for number in plus_numbers:
  if ("+" in number):
    num = list(map(int, number.split("+")))
    minus_numbers.append(sum(num))
  else:
    minus_numbers.append(int(number))

for i in range(len(minus_numbers)):
  if (i == 0):
    result += minus_numbers[i]
  else:
    result -= minus_numbers[i]

print(result)

많이 어렵게 푼 것 같긴 하지만 원리만 안다면 쉬운 문제였다.

2021.08.22

profile
backend-developer

0개의 댓글