본문 바로가기
코딩테스트 파이썬/백준

잃어버린 괄호

by 세용용용용 2024. 11. 6.

https://www.acmicpc.net/problem/1541

 

나의 풀이

import sys
input = sys.stdin.readline

a = input().rstrip()
susi_list = []
    
num_str = ''
for i in a:
    if not i.isdigit():
        susi_list.append(int(num_str))
        susi_list.append(i)
        num_str = ''
    else:
        num_str += i
if num_str:
    susi_list.append(int(num_str))
    
while ('+' in susi_list):
    for idx in range(len(susi_list)):
        if susi_list[idx] == '+':
            susi_list[idx]  = susi_list[idx-1] + susi_list[idx+1]
            susi_list.pop(idx+1)
            susi_list.pop(idx-1)
            break
    
while len(susi_list) != 1:
    for idx in range(len(susi_list)):
        if susi_list[idx] == '-':
            susi_list[idx]  = susi_list[idx-1] - susi_list[idx+1]
            susi_list.pop(idx+1)
            susi_list.pop(idx-1)
            break
print(susi_list[0])

 

시간 복잡도

for i in a : 연산을 리스트로 만들기 ( 선형 시간 복잡도 )
while ('+' in susi_list) : '+' 가 있을때 까지 연산 수행 ( 선형 시간 복잡도 )
    내부 연산 :  ( 선형 시간 복잡도 )
해당 알고리즘 시간복잡도는 이차형 시간 복잡도 ( O(n**2) )

'코딩테스트 파이썬 > 백준' 카테고리의 다른 글

최대 힙  (1) 2024.11.07
색종이 만들기  (1) 2024.11.06
DFS와 BFS  (0) 2024.11.06
계단 오르기  (0) 2024.10.30
스택 수열  (0) 2024.10.18