Notice
Recent Posts
Recent Comments
Link
스토리지
[08.22] 백준 1541 - 잃어버린 괄호 본문
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
언뜻보면 eval로 쉽게 해결할 수 있을 것 같은 코드이다.
하지만 eval로만 코드를 짜면 런타임에러가 무조건 나온다.
이유
예를들면, 055-050+040을 eval함수에 넣으면 런타임 에러가 발생한다.
055를 eval은 숫자로 바꿀 수 없다. 0을 떼야된다.
import sys
expression = sys.stdin.readline().split('-')
partial_sum = []
for i in expression:
temp = list(map(int, i.split('+')))
partial_sum.append(sum(temp))
total = partial_sum[0]
for psum in partial_sum[1:]:
total -= psum
print(total)
한참을 몰라서 헤메고 어떤 블로그를 참고해서 만든 코드이다...
첫번째 반복문까지는 이해가 되었지만 두번째 반복문이 살짝 이해가 안되었지만 과정을 모두 하나하나 적어보니 이해가 되었다.
첫번쨰 반복문에서 이미 +에 관한 연산을 모두 끝내므로 두번째에서는 무조건 -만 하면됨.
+를 가장 많이 한 값을 빼므로 가장 작은 값이 나올 수 밖에 없는 구조이다.
'알고리즘' 카테고리의 다른 글
프로그래머스 84325 - 직업군 추천하기 (0) | 2021.08.25 |
---|---|
프로그래머스 81301 - 숫자 문자열과 영단어 (0) | 2021.08.25 |
[07.15] 백준 11047 - 동전 0 (파이썬) (1) | 2021.07.15 |
[07.15] 백준 11720 - 숫자의 합 (파이썬) (0) | 2021.07.15 |
(임시) 백준 1931 회의실배정 (0) | 2021.03.15 |
Comments