Programmers_LV0_문자열 계산하기

jkky98·2023년 2월 2일
0

CodingTraining

목록 보기
7/62

학교수업때 배운거 드디어 써먹기.
문제 봤을 때 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
profile
자바집사의 거북이 수련법

0개의 댓글

관련 채용 정보