문제 출처 :www.acmicpc.net/problem/1541
문제 해석 : 계산의 우선순위를 변경하여 가장 작은 값을 결과로 가지도록 하는 문제이다. 즉 최대한 큰 수로서 - 연산을 진행하도록 하는 것이다.
문제 풀이 : 입력되는 문자열을 파싱하는 것을 시작으로 "-"를 기준으로 나누어 최대값으로 생성하고 그 뒤에 "-" 연산을 진행하게 되면 가장 작게 만들 수 있다.
가능한 다른 풀이 : 모든 경우를 생각해볼 수 있지만 비효율적일 수 있다. (ex, permutation을 통한 모든 순서 조정)
-> 여기서는 +와 - 연산 밖에 없기 때문에 좋지 않다.
풀이 코드
S = input().split('-')
answer = 0
for element in S[0].split('+'):
answer += int(element)
for element in S[1:]:
for sub in element.split('+'):
answer -= int(sub)
print(answer)
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] 백준 1620 나는야 포켓몬 마스터 이다솜 문제 풀이 (0) | 2021.01.09 |
---|---|
[알고리즘][Python] 백준 2887 행성터널 문제 풀이 (0) | 2021.01.09 |
[알고리즘][Python] 백준 1389 케빈 베이컨의 6단계 법칙 문제 풀이 (0) | 2021.01.08 |
[알고리즘][Python] 백준 1260 DFS와 BFS 문제 풀이 (0) | 2021.01.08 |
[알고리즘][Python] 백준 1107 리모컨 문제 풀이 (0) | 2021.01.08 |