백준 1541번: 잃어버린 괄호

Seungil Kim·2021년 9월 4일
0

PS

목록 보기
29/206

백준 1541번: 잃어버린 괄호

아이디어

빼기 기호가 처음으로 나온 다음부터는 그 다음 기호가 더하기든 빼기든 상관 없이 모든 수를 빼주면 된다. - 이후 다시 -가 나오기 전까지 나오는 +에 괄호를 쳐 주면 모두 뺄 수 있기 때문이다.

코드

expString = input()
expString += ' '
i = 0
ans = 0
minus = False

expLength = len(expString)
while i < expLength:
    if '0' <= expString[i] <= '9':
        startIndex = i
        while '0' <= expString[i] <= '9':
            i += 1
        endIndex = i
        i -= 1
        currentNum = int(expString[startIndex:endIndex])
        if minus is True:
            ans -= currentNum
        else:
            ans += currentNum
    elif expString[i] == '-':
        minus = True
    i += 1

print(ans)

처음 입력받은 문자열에 공백 문자를 더해주는 이유는 다음 문자가 숫자가 아닐 때 까지 i를 증가시키는 부분에서 index out of range 에러가 나는 것을 방지하기 위함이다.

여담

오랜만에 푸니까 재밌다. 한옥영 교수님의 자료구조 시간에 했던게 조금 도움이 됐을지도?..

profile
블로그 옮겼어용 https://ks1ksi.io/

2개의 댓글

comment-user-thumbnail
2021년 9월 4일

제 괄호도 찾아주세요

1개의 답글