[백준 / 1541] 잃어버린 괄호


날짜: 2021년 10월 27일
소요 시간: 12분 14초
카테고리: 그래프 탐색
태그: silver.2, 1541, 파이썬

백준 1541 - 잃어버린 괄호

입출력 예시

예제 입력예제 출력
55-50+40-35
10+20+30+40100
00009-000090

내가 적은 코드

import sys

del_minus = sys.stdin.readline().strip().split('-')
calculator = list()

for calc in del_minus:
    if '+' in calc:
        sum = 0
        for num in calc.split('+'):
            sum += int(num)
        calculator.append(sum)
    else:
        calculator.append(int(calc))

answer = calculator[0]
for minus in calculator[1:]:
    answer -= minus

print(answer)

풀이 과정

덧셈과 뺄셈의 연산식이 괄호를 통해 최소가 되려면 빼어지는 수가 크면 된다는 조건을 생각하면
덧셈을 먼저 처리해 준 다음 뺄셈을 처리해 주면 됨

splite() 함수를 통해 문자열 중 ‘-‘를 기준으로 수를 나눔

그 후 마찬가지로 splite() 함수를 통해 ‘+’ 연산을 진행 해 준 뒤

남아 있는 수들의 리스트의 첫번째 원소에서 두번쨰 원소부터 끝까지 뺄셈을 진행해 줌

베스트 코드

e = [sum(map(int, x.split('+'))) for x in input().split('-')]
print(e[0]-sum(e[1:]))

리뷰

  • 베스트 코드는 나와 같은 연산을 리스트 컴프리헨션을 통해 쉽고 빠르게 표현했다.




© 2021. by hminkim