1541. 잃어버린 괄호

sen·2022년 3월 7일
0

BOJ

목록 보기
38/38
post-thumbnail

문제

백준 1541번 잃어버린 괄호


풀이

와 진짜 오랜만에 글쓴다
아무튼 그게 중요한게 아니라 집중못하고 계속 문제 삽질하다가
문득 뇌리에 환상적인 코드가 스치면서 풀이 성공..;;

뭐하러 split() 놔두고 손수 파싱했는지 모르겠고.. 또 그걸 반복문 돌리면서 계산하고 앉아있었다..; 뭐했니 대체. 그러니까 틀리고 시간초과나지.

어쨌든 풀이해보자면,

어차피 맨 앞 숫자는 괄호 상관없이 무조건 양수다.
그 다음부터는 마이너스 부호를 기준으로 괄호를 나눠 최소값을 구할 수 있다.

예를 들어, 1-2+3+4-5+6 라는 수식이 있을 때
1-(2+3+4)-(5+6)와 같이 괄호를 치면 최소값이 된다.

막상 풀어보니 생각보다 난이도 있는 문제는 아니었구나 싶네,,??

구구절절 돌아돌아 작성하던 코드에서 아주 간단하게 바꼈다


import sys

s = sys.stdin.readline().split('-')
if len(s) <= 1:
    s = [map(int, s[0].split('+'))]
    print(sum(s))
else:
    s = [sum(map(int, x.split('+'))) for x in s]
    print(s[0] - sum(s[1:]))
profile
공부 아카이브

0개의 댓글