코딩테스트/백준

[백준] 1541번 : 잃어버린 괄호(Python)

Jindory 2022. 3. 17. 19:46
반응형

문제

세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.

그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.

괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.

입력

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.

출력

첫째 줄에 정답을 출력한다.

전체코드(Python)

# 입력값을 받는다.
expression = input()
# -를 기준으로 모두 나눈다.
# (-뒤의 값을 가장 크게 만들어야 음수값이 커지므로 -를 기준으로나눠 진 숫자는 모두 합친다)
s = expression.split('-')
result = 0
# -로 나눈 리스트를 가지고 + 기준으로 나누면서 나눠진 숫자를 합한다.
for i in range(len(s)):
    # 첫번째로 나온 값을 result로 초기화 한다.
    if i == 0:
        result=sum(list(map(int,s[i].split('+'))))
    # 다음으로 나온 리스트 값은 음수로 나눠진 값이므로 무조건 뺀다.
    else:
        result-=sum(list(map(int,s[i].split('+'))))
# 결과를 반환한다.
print(result)

알아야할 함수

  • string.split('-')
    • 특정문자를 기준으로 문자열을 나누는 함수이다.
  • map(int,s[i].split['+'])
    • 두번째 인자를 첫번째 인자의 자료형으로 변환하는 함수이다.

 

혹시라도 정정할 내용이나 추가적으로 필요하신 정보가 있다면 댓글 남겨주시면 감사하겠습니다.

오늘도 Jindory 블로그에 방문해주셔서 감사합니다.

 

[ 참조 ]

https://www.acmicpc.net/problem/1541

반응형