新らしくなった基本情報 科目 B 20問バージョン アルゴリズムとプログラミング サンプル問題3をJavaにしてみました

2023 年 4 月からIPA (独立行政法人情報処理推進機構)の基本情報技術者試験の制度が変更されました。

ここでは、「基本情報技術者試験 科目 B のサンプル問題20問バージョン」の中から、アルゴリズムとプログラミングの問題を取り上げ、Javaのソースコードを示します。

新人エンジニア研修に参加されている皆様の参考になれば幸いです。

【Javaプログラム】

import java.util.ArrayList;

public class Q3 {
    //本問で問われている関数
    public static ArrayList<Integer> makeNewArray(int[] in) {
        //        outは可変長の配列なのでArrayListを使っています。
        ArrayList<Integer> out = new ArrayList<>();
        int i, tail;
        out.add(in[0]);
        for (i = 1; i < in.length; i++) {
            tail = out.get(out.size() - 1);
            out.add(tail + in[i]);
        }
        return out;
    }

    //以下はテスト
    public static void main(String[] args) {
        int[] in = { 3, 2, 1, 6, 5, 4 };
        System.out.println(makeNewArray(in));
    }
}

【結果】

[3, 5, 6, 12, 17, 21]

【プログラムの解説】

このJavaプログラムは、整数の配列 in を引数に取り、 out という新しい配列を作成して、その中に要素を追加しているプログラムです。

out 配列には、 in 配列の各要素に対して、その要素と out 配列の前の要素の合計を要素として追加していきます。

makeNewArray(int[] in) メソッドでは、まず out 配列を ArrayList で宣言しています。

次に、 out 配列の最初の要素として in[0] を追加し、 for ループを用いて in 配列の各要素に対して、out 配列に追加する要素を計算しています。

具体的には、out 配列の最後の要素を tail 変数に代入し、 tail + in[i] を新しい要素として out 配列に追加しています。

最後に、 makeNewArray メソッドの戻り値として out 配列を返しています。

main メソッドでは、整数の配列 in を定義し、 makeNewArray メソッドに in を渡してその戻り値を出力しています。

出力結果は ArrayList の形式で出力されます。

以上のようにして、与えられた配列から新しい配列を作成して、その要素を追加するプログラムを実行しています。