https://www.acmicpc.net/problem/1541
split() 함수에 다음과 같이 문자열 인자를 주면 그 문자열을 기준으로 나눈 리스트를 반환한다.
import sys
print('10'.split('+'))
print('10+20'.split('+'))
이 문제는 주어진 문자열을 ' '.join()함수로 먼저 한칸씩 띄어쓰기 문자열을 만든후 split()함수로 문자열을 리스트로 만든다.
'12+34' -> ['1','2','+','3','4']
이후에는 -가 나올때 까지 문자열에 저장해놨다가 -가 나오면 저장해놨던 문자열을 다른 리스트에 저장해놓는다.
이후 리스트가 완성되면 첫번째 원소만 더하고 나머지 원소들은 빼준다.
그 이유는 합차 연산에서 가장 작은 수가 되려면 마이너스를 기준으로 끊어야 하기 때문이다.
import sys
s=input()
s=' '.join(s).split()
res=[]
string=''
for i in range(len(s)):
if s[i] =='-':
res.append(string)
string=''
else:
string+=s[i]
res.append(string)
sol=0
for i in range(len(res)):
s=res[i].split('+')
summ=0
for num in s:
summ+=int(num)
if i==0:
sol+=summ
else:
sol-=summ
print(sol)
'알고리즘' 카테고리의 다른 글
백준 20920 (딕셔너리 정렬) (0) | 2022.12.27 |
---|---|
연속합 - 백준 1912번 (0) | 2022.06.17 |
분할 정복 예제 ( 괄호를 삽입하는 여러가지 방법) (0) | 2022.05.21 |
분할 정복 (0) | 2022.05.21 |
그리디 알고리즘 예제 (0) | 2022.05.19 |