티스토리 뷰

알고리즘 공부/백준

백준 1541번

_Yunhwan 2022. 10. 29. 22:22

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

arr = str(input())

start=0
end = 0

num = []
bind = []


#숫자 저장
for i in range(len(arr)):
  if arr[i]=='+' or arr[i]=='-': 
    end=i
    num.append(int(arr[start:end]))
    start=i

num.append(int(arr[start:]))

min_val =sum(num)
cur = 0
start= len(num)

for i in range(1,len(num)):

  #음수일 경우
  if num[i]<0:
    if start==len(num):
      start=i
    #양수로 변경
    cur=-num[i]

    #마지막 인덱스일 경우
    if i==len(num)-1:
      bind.append(-cur)
      break

    for j in range(i+1,len(num)):
      #음수인 경우
      if num[j]<0:
        #부호바꿔서 괄호 안에 추가
        bind.append(-cur)
        break
      else:
        cur+=num[j]
        #마지막 인덱스일 경우
        if j==len(num)-1:
          #부호바꿔서 괄호 안에 추가
          bind.append(-cur)
          break

#비교해서 작은값 설정
min_val=min(sum(num[0:start])+sum(bind),min_val)

print(min_val)

 

'알고리즘 공부 > 백준' 카테고리의 다른 글

백준 1744번  (0) 2022.10.29
백준 1931번  (0) 2022.10.29
백준 2293번  (0) 2022.10.29
백준 1038번  (1) 2022.10.29
백준 1016번  (0) 2022.10.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함