(SW) Stack2 - 계산기3

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

swea-intermediate

목록 보기
45/51

계산기2에서 괄호 경우를 추가했다. 괄호는 부호와 같이 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:
                if tmp[-1]=='(':
                    break
                intt.append(tmp.pop())
            tmp.append(i)
        elif i=='(':
            tmp.append(i)
        elif i==')':
            while tmp:
                if tmp[-1]=='(':
                    tmp.pop()
                    break
                intt.append(tmp.pop())
        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개의 댓글

관련 채용 정보