학교수업때 배운거 드디어 써먹기.
문제 봤을 때 Queue이용하면 편하겠다 생각이 났음.
출제자가 공백을 넣어준 것으로 보아 split메서드 이용해서 일단 리스트로 재구성하였고, 연산자는 연산자Queue에 숫자는 숫자Queue에 for문을 통해 모두 넣고, 하나씩 빼면서 count변수에 쌓아감. 처음 count=0일때는 처음 숫자만 dequeue()하여 +시켜주고 그 다음부터는 if문을 통해 + or - 를 구분시켜 두 큐가 empty될때까지(while로구현) 모두 count에 계속 쌓음.
시간이 좀 걸린 이유는 queue라이브러리 메서드 구성좀 파악하느라 10분정도 날림.
from queue import Queue
cal_que = Queue()
num_que = Queue()
def solution(my_string):
my_string = my_string.split(' ') #공백을 기준으로 리스트화
for i in my_string:
if (i=='+') or (i=='-'):
cal_que.put(i)
else:
num_que.put(i)
#계산
count = 0
while num_que.empty() == False and num_que.empty() == False:
if count == 0:
num = num_que.get()
count += int(num)
else:
cal = cal_que.get()
num = num_que.get()
if cal == '+':
count += int(num)
elif cal == '-':
count -= int(num)
return count