꿈꾸는 개발자의 devLog
[BaekJoon] "그리디" - 백준 1541번 문제 : 잃어버린 괄호 본문
반응형
[문제 설명]
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었음
그러고나서 세준이는 괄호를 모두 지움
그런 다음, 괄호를 적절히 쳐서 이 식의 값을 최소로 만드려고 함
[해결 로직]
- 먼저 주어진 입력에서 - 로 split 실행
- 최소가 되는걸 찾아야하니깐 빼기를 먼저 해야함. 그래서 먼저 마이너스로 split
- '-'를 기준으로 분리되었으니 두개로 나눠지는데, 첫번째 리스트에서 + 가 있다면 다 더하기
- 두번째 리스트는 +가 나와도 어차피 '-'를 기준으로 나눠진 리스트기 때문에 -(N + M) 이렇게 됨
- 따라서, 두번째 리스트는 + 를 기준으로 나눠주고, 숫자를 만날 때마다 - 해주면 됨 (어차피 마이너스 정수가 나와도 더해지니깐 괜찮음)
[Solution 코드]
import sys
ary = sys.stdin.readline()
min_sp = ary.split('-')
plu_m = 0
#print(min_sp)
for i in min_sp[0].split('+'):
plu_m += int(i)
for i in min_sp[1:]:
for j in i.split('+'):
plu_m -= int(j)
print(plu_m)
반응형
'Algorithm > BaekJoon' 카테고리의 다른 글
[BaekJoon] "완전탐색" - 백준 18511번 문제 : 큰 수 구성하기 (2) | 2024.01.17 |
---|---|
[BaekJoon] "그리디" - 백준 20365번 문제 : 블로그2 (0) | 2024.01.17 |
[BaekJoon] "DP" - 백준 11055번 문제 : 가장 큰 증가하는 부분 수열 (0) | 2023.12.20 |
[BaekJoon] "완전탐색" - 백준 15721번 문제 : 번데기 (0) | 2023.12.20 |
[BaekJoon] "백트래킹" - 백준 1182번 문제 : 부분수열의 합 (0) | 2023.12.20 |
Comments