728x90
반응형
※ 문제링크
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
해당 문제는 그리디 알고리즘의 개념을 활용하면 풀 수 있는 문제였다. 최솟값을 만들기 위해서는 '-'뒤에 '+'가 존재하면,
'+'연산을 우선적으로 처리하여 빼야할 값을 최대화 시켜주면 조건 달성이 가능했다. 풀이방법과 코드는 아래와 같다.
1. 입력값을 받은 후 replace함수를 활용하여 '-'부호를 '-('로 변환한 후 '-'로 분할하여 새로운 리스트를 만든다.
2. 새로운 리스트에 변수들 중 '('를 가지고 있는 요소들을 더한 값(mi)과 나머지 값들을 더한 값(pl)을 저장할 변수를 만들고 저장한다.
3. 나머지 값들의 합(pl)에서 '('를 가지고 잇는 요소들을 더한 값(mi)를 빼주고 그 값을 출력한다.
N = input()
K = N.replace('-', '-(').split('-')
pl = 0
mi = 0
for i in range(len(K)):
if K[i][0] == '(':
K[i] = K[i][1:]
if '+' in K[i]:
mi += sum(list(map(int, K[i].split('+'))))
else:
mi +=int(K[i])
else:
if '+' in K[i]:
pl += sum(list(map(int, K[i].split('+'))))
else:
pl += int(K[i])
print(pl-mi)
P.S 개발자가 되기위해 공부중입니다. 잘못된 부분을 댓글로 남겨주시면 학습하는데 큰 도움이 될 거 같습니다.
728x90
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 5430번 AC / 사용언어 : 파이썬(python) (0) | 2021.12.26 |
---|---|
[BOJ] 1966번 프린터 큐 / 사용언어 : 파이썬(python) (0) | 2021.12.25 |
[BOJ] 11399번 ATM / 사용언어 : 파이썬(python) (0) | 2021.12.24 |
[BOJ] 1931번 회의실 배정 / 사용언어 : 파이썬(python) (0) | 2021.12.24 |
[BOJ] 11047번 동전0 / 사용언어 : 파이썬(python) (0) | 2021.12.24 |
댓글