Algorithm/백준

[Python] 1541 잃어버린 괄호

내영잉 2022. 12. 27. 02:14

1. 문제 📚

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

2. 입출력 예 📋

3. 알고리즘 ✅

그리디 -> 최소로 만들려면 - 앞에서 괄호로 묶어서 -를 최대한 많이 만들어줘야함

4. 소스코드 💻

import sys

input = sys.stdin.readline().strip()
input_arr = []
num = ''
index = 0
temp = input

# 숫자와 기호를 분리해주는 작업
while len(input) != 0:
    if input[0] == '-' or input[0] == '+':
        input_arr.append(int(num))
        num = ''
        input_arr.append(input[0])
    else:
        num += input[0]
    index += 1
    input = temp[index:]

    # 마지막은 무조건 숫자임
    if len(input) == 0:
        input_arr.append(int(num))

minus_flag = False
for i in range(len(input_arr)):
	# 마이너스를 만나는 순간 괄호로 묶어주어 뒷부분을 다 마이너스 처리해주기 위함
    if input_arr[i] == '-':
        minus_flag = True

    if minus_flag and (input_arr[i] != '+' and input_arr[i] != '-'):
        input_arr[i] = (-1) * input_arr[i]

answer = 0
for i in input_arr:
	# 기호가 아니고 숫자만 계산
    if i != '+' and i != '-':
        answer += i

print(answer)