본문 바로가기
알고리즘/SWEA

[파이썬] [SWEA] 1223. [S/W 문제해결 기본] 6일차 - 계산기2

by SBOX Learning by doing 2021. 2. 25.
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14nnAaAFACFAYD

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

T = 10
for tc in range(1,T+1):

    N = int(input())
    emp = input()

    emp_int = ''
    emp_temp = []
    for str in emp:
        if str == '*':
            emp_temp.append(str)
        elif str == '+':
            while emp_temp:
                emp_int += emp_temp.pop()
            emp_temp.append(str)
        else:
            emp_int += str
    # print(emp_int)
    while emp_temp:
        emp_int += emp_temp.pop()
    # print(emp_int)

    result = []
    for str in emp_int:

        if str == '*':
            emp2 = result.pop()
            emp1 = result.pop()
            emp3 = emp1 * emp2
            result.append(emp3)

        elif str == '+':
            emp2 = result.pop()
            emp1 = result.pop()
            emp3 = emp1 + emp2
            result.append(emp3)

        else:
            result.append(int(str))
    print("#{} {}".format(tc, result[0]))
반응형

댓글