소스 코드
input_list = list(input())
num = (input_list.count('+') + input_list.count('-')) * 2 + 1
str_list = [0 for _ in range(num)]
a = ''
idx = 0
for i in range(len(input_list)):
if input_list[i]=='+':
str_list[idx] = a
idx += 1
str_list[idx] = '+'
idx += 1
a = ''
elif input_list[i]=='-':
str_list[idx] = a
idx += 1
str_list[idx] = '-'
idx += 1
a = ''
else:
a += input_list[i]
if i==len(input_list)-1:
str_list[idx] = a
# 숫자에서 선행 0 제거하기
for i in range(len(str_list)):
str_list[i] = str_list[i].lstrip('0')
if str_list[i] == '':
str_list[i] = '0'
i = 0
open = False
while True:
if str_list[i] == '-':
if open == True:
str_list.insert(i, ')')
open = False
else:
str_list.insert(i+1, '(')
open = True
if i == len(str_list) - 1:
if open == True:
str_list.append(')')
break
i += 1
str_answer = ''.join(str_list)
print(eval(str_answer))
- 문제에서 주어진 테스트 케이스는 모두 통과하는데 계속 틀림으로 나와서 반례 찾고 틀린 부분 찾아내느라 시간이 많이 걸림
'Algorithm' 카테고리의 다른 글
[백준/파이썬] 1052 물병 - 구현 (0) | 2022.07.25 |
---|---|
[백준/파이썬] 13305 주유소 - 그리디 (0) | 2022.07.18 |
[백준/파이썬] 11399 ATM - 그리디 (0) | 2022.07.18 |
[백준/파이썬] 1931 회의실 배정 - 그리디 (0) | 2022.07.18 |
[백준/파이썬] 11047 동전 0 - 그리디 (0) | 2022.07.18 |