문제

www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

 

 

문제 풀이

그리디 알고리즘 문제로 +연산을 먼저처리하고 - 연산을 처리해주면 된다.
1. 숫자와 문자 를 분리하여 저장.
2. 문자중 +먼저 처리
3. +처리 후 -처리

 

코드

s =input()
nums = []
num = ''

# 숫자 문자 분리

for char in s:
    if char.isdigit():
        num+=char
    else:
        nums.append(int(num))
        num = ''
        nums.append(char)
nums.append(int(num))


# + 먼저 처리
nums2 = []

for idx,char in enumerate(nums):
    if char == '+':

        nums2[-1] += nums[idx+1]

    elif idx != 0 and nums[idx-1]=='+':
        continue
    else :
        nums2.append(char)


# - 처리
result = int(nums2[0])*2


for idx,num in enumerate(nums2):

    if num != '-':
        result -= int(num)

print(result)

'파이썬 > 백준' 카테고리의 다른 글

[python] 백준 -최단 경로  (0) 2021.01.07
[python] 백준 -줄세우기  (0) 2021.01.07
[python] 백준 -가장 긴 단어  (0) 2021.01.07
[python] 백준 -Z  (0) 2021.01.07
[python] 백준 - 트리순회.py  (0) 2021.01.07
ariz1623