코딩테스트 문제

[백준/Python] 잃어버린 괄호

왕초보코딩러 2024. 9. 11. 22:59
728x90

https://www.acmicpc.net/problem/1541

 

 


-40 +50

-(40 +50)

 

-40 +50 +30

-(40 +50 +30)

 

-40 +50 +30 +100

-(40 +50 +30 +100)

 

-40 +50 +30 +100 -1000

-(40 +50 +30 +100) -1000

 

그리디를 이용

- 뒤에 -가 올 때까지 모든 +를 -로 바꾼다

 

1. 입력 받기

original = input()

 

2. 숫자와 기호를 분리

# 숫자
st = original.replace('+', ' ')
st = st.replace('-', ' ')
num = list(map(int, st.split()))

여기에서 00009도 숫자로 바꿀 수 있다

 

# 기호
pm = []
for o in original:
    if o=='+' or o=='-':
        pm.append(o)

 

3. 그리디를 이용

for i in range(len(pm)):
    if pm[i] == '-':
        n = 1
        while i+n<len(pm):
            if pm[i+n] == '-':
                break
            pm[i+n] = '-'
            n+=1

 

4. 합계 구하기

total = num[0]
for i in range(len(pm)):
    if pm[i] == '+':
        total += num[i+1]
    else:
        total -= num[i+1]

 

5. 출력

print(total)