Tiny Bunny
본문 바로가기
Algorithm/Python

[SWEA #1222] 계산기1

by nowag 2024. 2. 13.

문제

문자열로 이루어진 계산식이 주어질 때, 이 계산식을 후위 표기식으로 바꾸어 계산하는 프로그램을 작성하시오.


예를 들어
“3+4+5+6+7”
라는 문자열로 된 계산식을 후위 표기식으로 바꾸면 다음과 같다.
"34+5+6+7+"
변환된 식을 계산하면 25를 얻을 수 있다.


문자열 계산식을 구성하는 연산자는 + 하나뿐이며 피연산자인 숫자는 0 ~ 9의 정수만 주어진다.

입력
각 테스트 케이스의 첫 번째 줄에는 문자열 계산식의 길이가 주어진다. 그 다음 줄에 문자열 계산식이 주어진다.
총 10개의 테스트 케이스가 주어진다.

출력
#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 답을 출력한다.

 

내가 쓴 코드

for t in range(10):
    N = int(input())
    cal = list(input())

    # 후위 표기식으로
    cal[1], cal[N-1] = cal[N-1], cal[1]

    stack = []
    for c in cal:
        if c == '+':
            if len(stack) <= 1:
                break
            else:
                a = int(stack.pop())
                b = int(stack.pop())
                stack.append(b + a)
        else:   # 숫자일때
            stack.append(c)

    result = int(stack.pop())
    print(f'#{t+1} {result}')

 

출력 결과

728x90
반응형

'Algorithm > Python' 카테고리의 다른 글

[BOJ #2751] 수 정렬하기 2  (1) 2024.02.13
[BOJ #15649] N 과 M  (1) 2024.02.13
[SWEA #11613] 스택2 - Forth  (2) 2024.02.13
[SWEA #2005] 파스칼의 삼각형  (0) 2024.02.13
[BOJ #11727] 2xn 타일링 2  (1) 2024.02.13