平成28年度秋期 応用情報技術者試験 午前 問3

分野:アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語)|実際に出題されたIPA過去問題

逆ポーランド表記法で表された式を評価する場合,途中の結果を格納するためのスタックを用意し,式の項や演算子を左から右に順に入力し処理する。スタックが図の状態のとき,入力が演算子となった。このときに行われる演算はどれか。ここで,演算は中置表記法で記述するものとする。

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  A 演算子 B
  2.  B 演算子 A
  3.  C 演算子 D
  4.  D 演算子 C
解答・解説を見る

正解:ウ

AI解説

逆ポーランド表記法の評価では、演算子が入力されたとき、スタックから2つの値をポップし、「後にポップした値 演算子 先にポップした値」の順で演算する。図のスタックは上からD、C、B、Aであり、最初にポップされるDが右オペランド、次にポップされるCが左オペランドとなるため、行われる演算はC 演算子 Dである。 ア: AとBはスタックの底の方にあり、今回の演算では取り出されない。 イ: 同じくA、Bは取り出されない上、オペランドの順序も演算対象ではない。 ウ: 正しい。トップのDと次のCがポップされ、先に積まれていたCが左オペランドとなってC 演算子 Dが実行される。 エ: D 演算子 Cはオペランドの順序が逆である。減算や除算では順序が結果に影響するため、ポップ順と演算順の関係を正しく理解する必要がある。 💡 「先にポップした方が右オペランド」が鉄則。A−Bを逆ポーランドにするとAB−で、Bが後から積まれて先にポップされることから確認できる。

出典:平成28年度 秋期 応用情報技術者試験 午前 問3 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語))の過去問