[ BOJ 1541 ] 잃어버린 괄호(Python)

uoayop·2021년 6월 7일
0

알고리즘 문제

목록 보기
90/103
post-thumbnail

문제

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

콜렉트콜이 생각나는 문제 번호다. 홀홀 👵🏻


문제 풀이

"1-2+3+4-5+2"
다음과 같은 문자열이 주어졌을 때,
값을 최소로 만들기 위해선 계속 빼면 된다.

"1-(2+3+4)-(5+2)"
-를 기준으로 문자열을 나누어준 뒤,
다시 +를 기준으로 문자열을 나눠서 합을 구해줬다.

sub1 = list(order.rsplit('-'))

for row in sub1:
    sub2 = list(map(int,''.join(row).rsplit('+')))

"1-9-7"
그리고 빼주면 된다.

temp = 0
first = True

for row in sub1:
    sub2 = list(map(int,''.join(row).rsplit('+')))
    # 첫번째 요소만 temp에 더해주고, 나머지는 빼주자
    if first:
        first = False
        temp = sum(sub2)
    else:
        temp -= sum(sub2)

코드

import sys
input = sys.stdin.readline

order = input().rstrip()
sub1 = list(order.rsplit('-'))

temp = 0
first = True
for row in sub1:
    sub2 = list(map(int,''.join(row).rsplit('+')))

    if first:
        first = False
        temp = sum(sub2)
    else:
        temp -= sum(sub2)

print(temp)
profile
slow and steady wins the race 🐢

0개의 댓글