[알고리즘] 1541 잃어버린 괄호

게시물을 작성하면서 복습하는 문제를 선정하는 기준은<solved.ac 티어 실버 2 (Silver 2) 이상>입니다.

※ 본 사진과 해당 게시글 내용의 문제 모두 백준 : 온라인 저지[Baekjoon_OnlineJudge]사이트에서 발췌해왔습니다.

❓ 문제

백준 온라인 저지 (Baekjoon Online Judge) : 1541 잃어버린 괄호


❗ 풀이

My Code

메모리 : 30864KB
시간 : 72ms

값을 가장 최소로 만들기 위해서는
" 첫 값이 가장 작아야하고 나머지 뒤에 있는 값들을 가능한한 최대로 합한 후 (괄호가 필요한 부분) 빼줘야 한다. "

그러기 위해서는
우선 - 뺄셈기호를 기준으로 식을 나눠주고
시작 값이 될 첫 번째로 분리된 값을 계산해준다.

그 이후, 뒤에 있는 뺄셈 기호로 분리된 덧셈들을 계산해 ( s )
시작 값에서 빼준다.

import sys
ex = list(sys.stdin.readline().rstrip().split('-'))
start = 0
for s in ex[0].split('+') :
    start += int(s)
for i in range(1, len(ex)) :
    s = 0
    nums = ex[i].split('+')
    for n in nums :
        s += int(n)
    start -= s
print(start)

좋은 웹페이지 즐겨찾기