본문 바로가기
파이썬알고리즘

20210810#(77) 백준 1514번 잃어버린 괄호

by zho 2021. 8. 10.

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

○ 느낀 점 

split() 함수를 생각보다 모르고 있었다는 것을 알게 됨

 

○ 풀이

 

alist=input().split('-')
num=[]
for i in alist:
  cnt=0
  s=i.split('+')
  for j in s:
    cnt+=int(j)
  num.append(cnt)
n=num[0]
for i in range(1,len(num)):
  n-=num[i]
print(n)

 

# 55-50+40-30+40이라고 치면 -가 나오면 괄호를 쳐주면 된다. -> 55-(50+40)-(30+40)처럼. 

즉 - 기준으로 split 하게 되면 55, 50+40, 30+40 -> 55, 90,70 -> 55,160 -> 55-160 = -105 

 

1. alist=input().split('-')로 예제에 입력된 값(55-50+40)을 받게 되면 ['55', '50+40']이 됨 -기준으로 나뉨.

2. alist에서 +로 또 split을 하면 ['55']과 ['50', '40']으로 split 됨

3. 이중 for문을 통해 cnt변수에 split 한 값들 더해서 저장

4. num=['55', '90']

5. 첫 번째 값에서 나머지 값들을 빼면 최솟값이기 때문에 for문 통해 최솟값 출력

 

 

728x90