백준 알고리즘 1541. 잃어버린 괄호
2024. 3. 21. 11:31ㆍ코딩 테스트/백준
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
전체 코드
def solution(s: str):
s_list = re.findall(r'\d+|[\+\-]', s)
direction = 1
result = 0
for ch in s_list:
if ch == '-':
direction = -1
elif ch == '+':
pass
else:
result += int(ch) * direction
return result
s = input()
print(solution(s))
정규표현식 패키지 re의 findall을 사용하여 ‘숫자’, ‘+’, ‘-’로 split를 진행한다. 최소값을 만드려면 1-2+3는 1-(2+3)으로, 1-2+3-4는 1-(2+3)-4으로 괄호를 묶을 수 있다.
이는 ‘-’가 나온 순간 부터 항상 뺄셈을 진행한다는 의미와 동일하다. 따라서 ‘-’가 나오면 항상 뺄셈을 진행하도록 코드를 작성한다.
'코딩 테스트 > 백준' 카테고리의 다른 글
백준 알고리즘 5557. 1학년 (0) | 2024.03.21 |
---|---|
백준 알고리즘 1309. 동물원 (0) | 2024.03.21 |
백준 알고리즘 1743. 음식물 피하기 (0) | 2024.03.20 |
백준 알고리즘 2110. 공유기 설치 (0) | 2024.03.20 |
백준 알고리즘 1764. 듣보잡 (0) | 2024.03.19 |