[백준 / 1541] 잃어버린 괄호
in Problem Solving on BaekJoon
날짜: 2021년 10월 27일
소요 시간: 12분 14초
카테고리: 그래프 탐색
태그: silver.2
, 1541
, 파이썬
입출력 예시
예제 입력 | 예제 출력 |
---|---|
55-50+40 | -35 |
10+20+30+40 | 100 |
00009-00009 | 0 |
내가 적은 코드
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:]))
리뷰
- 베스트 코드는 나와 같은 연산을 리스트 컴프리헨션을 통해 쉽고 빠르게 표현했다.