본문 바로가기

학교공부/알고리즘

백준 #1541

 

괄호를 잘쳐서 최소값으로 만드는 문제.

-를 만나면 다음 -를 만날때까지 괄호를 치는게 최적의 해이다. 원래는 그리디 알고리즘으로 정당성을 증명해야하지만 그냥 직관적으로 봐도 자명한 사실이라 생략한다. 

 

import sys

fomula = list(map(str,sys.stdin.readline().split('-')))

def listsum(lst):
    lst1=str(lst).split('+')
    sum = 0
    for i in lst1:
        sum+=int(i)
    return sum

sum = 0
sum +=listsum(fomula[0])
for i in range(1,len(fomula)):
    sum-=listsum(fomula[i])

print(sum)

파이썬에는 신기하고 편리한 방법이 많은거같다. 

 

 

 

 

 

 

 

'학교공부 > 알고리즘' 카테고리의 다른 글

분기한정법 Branch-and-Bound  (0) 2020.06.03
백준 #1931  (0) 2020.05.16
신장트리 최소비용 탐색  (0) 2020.04.30