Hikenny25
1541 - 잃어버린 괄호 본문
https://www.acmicpc.net/problem/1541
- 수학
- 구현
import sys
input = sys.stdin.readline
m = input()[:-1]
n = ''
a = ''
flag = 1
for i in m:
if i == '-' or i == '+':
n += str(int(a))
a = ''
if i == '-': flag = -1
if flag == 1:
n += '+'
else:
n += '-'
else:
a += i
n += str(int(a))
print(eval(n))
기본 아이디어는 일단 수학적으로 접근해서, 하나의 - 가 오면 그 뒤의 수는 모두 - 로 만들 수 있다는 아이디어를 사용했다! 그리고 eval 함수로 string을 그대로 계산해서 출력했다
사실 더 이쁘게 짤 수 있을 것 같은데 너무 힘들어서 그냥 푼 걸로 만족...
추가)
import sys
input = sys.stdin.readline
def evalwithouterror(st):
st = st.split('+')
for x in range(len(st)):
st[x] = int(st[x])
return sum(st)
m = input()[:-1].split('-')
a = evalwithouterror(m[0])
for i in range(1, len(m)):
a -= evalwithouterror(m[i])
print(a)
split 함수를 사용해서 훨씬 보기 좋은 코드를 짰다!
split을 띄어쓰기를 통한 입력받을 때만 사용했는데, 어떤 문자를 기준으로 문자열을 구별해 리스트에 저장시키는 좋은 함수였다.. 아마 앞으로 요긴하게 쓰이지 않을까 싶다
'baekjoon (solved.ac) > class 3 Solve' 카테고리의 다른 글
1012 - 유기농 배추 (0) | 2022.10.27 |
---|---|
1931 - 회의실 배정 (1) | 2022.10.26 |
9375 - 패션왕 신해빈 (0) | 2022.10.26 |
9461 - 파도반 수열 (0) | 2022.10.25 |
11659 - 구간 합 구하기 4 (0) | 2022.10.25 |
Comments