728x90
반응형

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

import sys
import re

A = str(sys.stdin.readline().rstrip()) #str 타입으로 A변수에 받아온다.
c = 0
d = 0
B = A.split('-') #B리스트에 A를 슬라이싱한다. ==> -를 기준으로 나눈다
#print(bool(A.split('-')))
# print(re.split("[-, +]" , A)) #정규식 활용시 -,+ 두개의 SPLIT()으로 나눌 수 있다.

C = B[0].split('+')
C = list(map(int, C)) #데이터 타입 변환!
c +=sum(C)
if len(B)>1:
    for i in B[1:]:
        D = i.split('+')
        D = list(map(int, D))
        d+= sum(D)
print(c - d)

1. 정규식 RE 활용 ==> SPLIT() 시 여러개의 문자열로 나눌 수 있다!

re.split("[-, +]" , A)

2. 데이터 타입 변환을 원할 시 

list(map(int, C)

map함수를 활용한 list 를 쓰자!

 

3. 알고리즘 생각 

 

'-'의 크기가 가장 커야한다 ==> -를 기준으로 나누면 가로로 묶일 것들이 나누어진다! 

이걸 마이너스가 나오기 이전의 첫번째 더한값과 빼면 최소값이 나온다!

728x90
반응형

+ Recent posts