アルゴリズムとプログラミング

基本情報技術者試験逆ポーランド記法」の問題

テクノロジ系アルゴリズムとプログラミング計算問題難易度:normal
逆ポーランド記法で「5 3 - 4 *」と表された式を評価した結果はいくつか。
計算結果-8
17
23
値は8
正解
値は8

逆ポーランド記法はオペランドをスタックに積み、演算子で直前2つを取り出す。5,3を積み-で5-3=2、2,4を積み*で2×4=8となり正しい。

?選択肢ごとの解説

ア ×計算結果-8は5-3を3-5=-2と引く順序を逆にし-2×4=-8とした誤りである。
イ ×17は中置記法と取り違え5-3×4=5-12を符号処理し誤った値を導いている。
ウ ×23は(5+3)×?など演算子を取り違えたり積む順序を誤った計算ミスに相当する。
エ ○逆ポーランド記法はオペランドをスタックに積み、演算子で直前2つを取り出す。5,3を積み-で5-3=2、2,4を積み*で2×4=8となり正しい。

くわしく

逆ポーランド記法(後置記法)は括弧が不要で、演算子を見るたびスタック上位2要素に適用すればよい。引き算や割り算は順序が結果を変えるため、下から2番目を左オペランドとする規則を守ることが要点である。

本番での押さえどころ

試験のコツ

トークンを左から読み、数はスタックへ、演算子は『下の値 演算子 上の値』で計算すると順序を誤らない。

覚え方

逆ポーランドは『二つ積んで演算子で潰す』を繰り返すだけ、とスタック動作で覚える。

よくある誤り

減算・除算でオペランドの順序を逆にする、または中置記法のつもりで読む誤りが頻出する。

アルゴリズムとプログラミングの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0029

【基本情報技術者試験】逆ポーランド記法の問題 — 解答・解説|ukamiru 過去問