백준 1541번: 잃어버린 괄호

danbibibi·2021년 10월 8일
0

문제

문제 바로가기> 백준 1541번: 잃어버린 괄호

풀이

우선 문자열을 파싱한 후, '+' 연산을 먼저해주고, '-'연산을 적용하는 식으로 문제를 풀었다.

def solution():
    import sys
    input = sys.stdin.readline
    expression = input()
    nums, operator, nums2 = [], [], []
    begin = 0
    for i in range(len(expression)):
        if expression[i]=='+' or expression[i]=='-':
            operator.append(expression[i])
            nums.append(int(expression[begin:i]))
            begin = i+1
    nums.append(int(expression[begin:len(expression)]))
    tmp = nums[0]
    for i in range(len(operator)):
        if operator[i] == '+':
            tmp+=nums[i+1]
        else:
            nums2.append(tmp)
            tmp = nums[i+1]
    nums2.append(tmp)
    ans = nums2[0]*2
    for i in nums2: ans-=i
    print(ans)
solution()

코드 개선

split() 함수를 써서 더 간단하게 풀 수도 있다.

def solution():
    import sys
    input = sys.stdin.readline
    expressions = input().split('-')
    ans = 0
    for i in expressions[0].split('+'):
        ans += int(i)
    for i in expressions[1:]:
        for j in i.split('+'):
            ans -= int(j)
    print(ans)
solution()
profile
블로그 이전) https://danbibibi.tistory.com

0개의 댓글

관련 채용 정보