(SW) Stack2 - 계산기2

광어회깍뚝썰기·2021년 8월 13일
0

swea-intermediate

목록 보기
44/51

int형을 저장할 리스트 intt와 부호를 저장할 리스트 tmp를 선언하여 변환한 뒤 계산하였다.

for tc in range(1,10+1):
    N=int(input())
    arr=list(input())
    
    #후위변환
    intt=[]
    tmp=[]
    for i in arr:
        if i=='*':
            tmp.append(i)
        elif i=='+':
            while tmp:
                intt.append(tmp.pop())
            tmp.append(i)
        else:
            intt.append(i)
    for i in tmp[::-1]:
        intt.append(i)
    
    #계산
    stk=[]
    for i in intt:
        if i.isalnum():
            stk.append(int(i))
        else:
            n1=stk.pop()
            n2=stk.pop()
            if i=='+':
                stk.append(n1+n2)
            elif i=='*':
                stk.append(n1*n2)
    
    print(f'#{tc} {stk[0]}')  

0개의 댓글

관련 채용 정보