[백준] 1541: 잃어버린 괄호 - 파이썬[python]

다인·2024년 11월 14일

백준

목록 보기
106/112
post-thumbnail

풀이

  • 나는 처음에 괄호를 적절히 쳐서 최소로 만들라기에 숫자들 사이에 괄호를 쳐서 0으로 만들 생각을 했다.. 그렇게 하면 첫 번째 예제의 정답은 -185여야 하는데 -35...?
  • 다시 생각해보니까 문제 의도는 숫자들 사이에 괄호를 넣으면 안 되고 숫자 끝과 끝에 괄호를 넣으라는 것 같다.
  • 즉, - 연산자가 나오면 - 연산자가 나오기 전까지 모두 괄호로 묶어 최대한 큰 음수를 만들어주면 되는 것이다.
  • 문제를 이해하고 나니까 그냥 split으로 뚝딱 만들어지겠군 해서 오랜만에 금방 짠 코드이다.

코드

import sys
input = sys.stdin.readline

calc = input().split('-')

fst = map(int, calc[0].split('+'))
res = sum(fst)

for i in range(1, len(calc)):
    num = calc[i].split('+')
    tmp = 0
    for j in num:
        tmp += int(j)
    res -= tmp

print(res)
  • 나는 먼저 출력할 res에 입력의 가장 첫 번째 값을 담아주고, for문으로 나머지를 빼주었다.
    왜냐하면 첫 번째는 무조건 -로 시작하지 않기 때문에 빼주면 안 돼서다!
  • 다른 사람들 코드를 보니까 -로 split한 요소들을 + 연산으로 더해주고 새로운 리스트에 저장하더라. 그래도 되겠군!

결과

0개의 댓글