한 걸음씩 기록하며

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

알고리즘 & 코딩테스트

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

Haksae 2022. 3. 19. 05:09

⛏ 문제 파악

  • 괄호를 적절히 쳐서 주어진 식의 값을 최소로 만드는 문제
  • 최소로 만드려면, -를 기준으로 안에 있는 값들을 괄호로 묶으면 된다.
    • 가령 55-50+40-30+40 이라는 식이 주어졌다면, 아래와 같이 -를 기준으로 괄호로 묶으면 최소값이 된다.
    • 55 - (50 + 40) - (30 + 40)

 👉🏻  답안

from sys import stdin

line = list(stdin.readline().strip().split('-'))

sum = 0
for i in line[0].split('+'):
  sum += int(i)

for i in range(1, len(line)):
  x = line[i].split('+')
  for j in range(0,len(x)):
    sum -= int(x[j])
print(sum)

📑  간단한 설명

  • 처음에 받을 때 '-'로 split 한다.
  • 나뉜 것들을 '+' split 하면 숫자들이 나올 것이다.
  • 먼저 line[0]은 무조건 더해줘야한다. (위에서 55를 생각하면 된다.)
    • line[0]을 '+' 으로 나눠서 더해준다.
  • 나머지 line은 이중 포문을 통해서 '+' 으로 split 하고, 모든 값들을 다 빼준다.
Comments