【解アルゴリズム問題】【Python】白駿1935号:接尾辞2
9097 ワード
白駿1935題リンク:https://www.acmicpc.net/problem/1935
📑 問題の説明
接尾辞式と各演算子に対応する値が与えられた場合、計算プログラムが作成されます.
入力:被演算子の個数、接尾辞、被演算子に対応する値
出力:接尾辞式の結果
💡 トラブルシューティング方法
💻 コード#コード#
import sys
def postfix(n, post, num_list):
stack = list()
temp = 0
result = 0
for i in range(len(post) - 1):
if (post[i] != '+' and post[i] != '-' and post[i] != '*' and post[i] != '/'):
stack.append(num_list[ord(post[i]) - 65])
elif (post[i] == '+'):
cur = stack.pop()
prev = stack.pop()
stack.append(prev + cur)
elif (post[i] == '-'):
cur = stack.pop()
prev = stack.pop()
stack.append(prev - cur)
elif (post[i] == '*'):
cur = stack.pop()
prev = stack.pop()
stack.append(prev * cur)
elif (post[i] == '/'):
cur = stack.pop()
prev = stack.pop()
stack.append(prev / cur)
return stack.pop()
if __name__ == '__main__':
n = int(sys.stdin.readline())
post = sys.stdin.readline()
num_list = list()
for i in range(n):
num = int(sys.stdin.readline())
num_list.append(num)
answer = postfix(n, post, num_list)
print("{:.2f}".format(answer))
💟 詳細
Reference
この問題について(【解アルゴリズム問題】【Python】白駿1935号:接尾辞2), 我々は、より多くの情報をここで見つけました https://velog.io/@yeomja99/알고리즘-문제-풀이파이썬-백준-1935번-후위-표기식2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol