[PY] 1541 : 잃어버린 괄호

아니어떻게된게나는몇달전에제대로풀어본것도기억도잘안나고그렇다고다시풀어볼용기를가지고임한것도아니고솔직히그리디가무슨별거라고깊게생각하지도않았는데답부터찾아보겠다고군대에서썼던아이패드열어다가답찾아보고있고지금내가뭐하는건지너무한심할지경이다진짜이문제별거아니었는데그냥그리디가무슨말을하고싶은건지조금만더생각해볼걸이게과연문제를풀어서숙련도를높이는건지정신력고양을위한건지정말너무속상할따름입니다

그래서.. 이 문제 풀이를 위한 아이디어는 아래에 있다.

  1. 입력된 문자를 하나씩 확인한다. 00009-00009 라는게 입력되면 맨 왼쪽의 첫 글자인 0부터 보는거다.
  2. 내가 보고있는 것이 숫자라면, 어딘가에 계속 저장을 해나간다. 그러면 -를 만날때까지는 0, 0, 0, 0, 9를 저장하게 된다.
  3. 그리고 마참내 -를 만나게된다. 그러면 부호에 따라 2번에서 반복했던 내용을 숫자로 변환해서 결과에 반영시킨다.
  4. 그럼 지금, -9가 어쨌든 중간 결과이다. 남은 00009에 대해서도 연산을 끝내야한다.
  5. 결국 입력 되는 식은 숫자로 끝나서 숫자로 끝난다고 했다. 내용이 마지막인것을 확인했다면, 해당 수는 더해지도록 하고 끝낸다.
  6. 그렇게 해야 이 식이 올바른 답을 만들어 줄 수 있다.
import sys
input = sys.stdin.readline

targetSentence = input()
isMinus = False
num = ""
result = 0
for i in range(len(targetSentence)):
    if(targetSentence[i] == '-' or targetSentence[i] == '+' or i == len(targetSentence) - 1):
        if(isMinus):
            result -= int(num)
            num = ""
        else:
            result += int(num)
            num = ""
    else:
        num += targetSentence[i]
    
    if(targetSentence[i] == '-'):
        isMinus = True

print(result)

'문제풀이' 카테고리의 다른 글

[PY] <!> 1700 : 멀티탭 스케줄링  (0) 2025.04.10
[PY] 1946 : 신입사원  (0) 2025.04.09
[PY] <!> 11049 : 행렬 곱셈 순서  (0) 2025.04.09
[PY] 12865 : 평범한 배낭  (0) 2025.04.06
[PY] 11047 : 동전 0  (1) 2025.04.05