반응형
Recent Posts
Recent Comments
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Today
Total
관리 메뉴

꿈꾸는 개발자의 devLog

[BaekJoon] "그리디" - 백준 1541번 문제 : 잃어버린 괄호 본문

Algorithm/BaekJoon

[BaekJoon] "그리디" - 백준 1541번 문제 : 잃어버린 괄호

덩화 2024. 1. 17. 10:02
반응형

[문제 설명]

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)
반응형
Comments