728x90
반응형
SMALL
✏️ 문제
문제 파악
- 기호를 기준으로 나누어서 나눈 값끼리 다 더해주면 - 기호와 붙었을 때 최대로 빼게 되므로 split() 함수를 통해 - 기호를 기준으로 나누어준다.
예제1 같은 경우
+ 기호 때문에 숫자 배열에 넣을 수 없으므로 배열에 집어넣으면 ['55', '50+40'] 와 같이 되는데
문자열 내에 + 기호가 있으면 + 기호를 기준으로 나누어 숫자로 타입을 바꾼 후 두 개의 합을 배열에 다시 넣어주고
문자열 내에 + 기호가 없으면 그냥 숫자로 타입을 바꾼 후 배열에 다시 넣어준다.
그 후 배열[0] 값에서 뒷 배열의 값을 전부 빼주면 된다.
알고리즘
- 수학
- 그리디 알고리즘
- 문자열
- 파싱
코드
str1 = input().split('-')
for i in range(len(str1)):
if '+' in str1[i]:
str1[i] = sum(map(int, (str1[i].split('+'))))
else:
str1[i] = int(str1[i])
print(str1[0] - sum(str1[1:])) # 뒷 배열의 값들의 합을 뺌
728x90
반응형
LIST
'PS > 백준' 카테고리의 다른 글
[Python] 1026번 보물 (2) | 2024.07.14 |
---|---|
[Python] 1931번 회의실 배정 (0) | 2024.07.14 |
[Python] 2217번 로프 (2) | 2024.07.14 |
[Python] 1789번 수들의 합 (0) | 2024.07.14 |
[Python] 10988번 팰린드롬인지 확인하기 (0) | 2024.04.21 |