알고리즘 풀이/Python

[Python] 계산기1 (SWEA D4 1222번 파이썬)

모남(monam2) 2023. 10. 14. 17:16

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

예를 들어

“3+4+5+6+7”

라는 문자열로 된 계산식을 후위 표기식으로 바꾸면 다음과 같다.

"34+5+6+7+"

변환된 식을 계산하면 25를 얻을 수 있다.

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

[입력]

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

총 10개의 테스트 케이스가 주어진다.

[출력]

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

입력101
9+8+5+9+2+4+1+8+3+9+3+8+7+8+6+8+9+4+1+1+7+6+1+5+8+7+6+9+6+3+1+3+1+7+5+9+2+8+4+3+7+3+4+7+3+4+8+3+2+6+6
83
7+4+8+3+4+8+5+5+3+6+7+1+2+5+6+5+5+6+1+6+7+8+6+4+7+4+3+1+6+1+2+1+6+8+6+9+2+7+4+3+2+3
...
출력#1 267
#2 197
...

 

문제 이해

- 후위 표기식에 대한 계산을 하는 문제입니다.

- 후위 표기식은 부호를 뒤로 몰아넣는 식 표기법인데, 현재 문제는 + 연산 만을 하고 있으므로 처음에 더해지는 수만 붙여주고 나머지는 + 뒤에 숫자를 써주면 됩니다.

- 코드상으론 단순 합만 구하면 되므로, +를 기준으로 숫자들을 받아 전체 합계를 내주면 되겠습니다.

 

코드

#swea 1222 계산기1

for t in range(10):
    n = int(input())
    arr = list(map(int, input().split('+')))
    print(f"#{t+1}",sum(arr))

 

D4치곤 단순하고 간단한 문제이지만, 이후 후위식 계산을 위한 기초 문제로 보입니다.