728x90
문제
https://www.acmicpc.net/problem/1935
풀이
스택을 사용해 후위표현식을 구현하면 된다.
우선, 수식의 문자에 대응하는 숫자를 매핑해주자.
num = {}
for i in range(N):
num[chr(ord("A") + i)] = int(input())
연산 기호를 입력 받기 전 까지 모든 숫자를 스택에 저장해주고,
연산 기호를 입력받으면 스택에 저장해둔 두 수를 꺼내 계산을 한 뒤 다시 스택에 저장하면 된다.
이 과정을 반복하면 스택에는 후위 표현식에 대한 계산 결과가 남는다.
# Solve
stack = []
for f in F:
if f.isalpha():
stack.append(num[f])
else:
B = stack.pop()
A = stack.pop()
stack.append(eval(str(A) + f + str(B)))
# Output
print("%.2f" % stack[0])
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/01935.py
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 10657] Cow Jog [Java] (0) | 2025.02.21 |
---|---|
[백준 30329] Kick [Java] (0) | 2025.02.21 |
[백준 22943] 수 [Java] (0) | 2025.02.19 |
[백준 02436] 공약수 [Python] (0) | 2025.02.19 |
[백준 01934] 최소공배수 [Python] (0) | 2025.02.18 |