見出し画像

東大情報理工 創造情報学専攻 修士 2023年度 プログラミング試験解答[夏院試](実際の入力データ+完全解答コード + 実行用Dockerコンテナ付き)

追記:2024/1/29スクリプトの実行環境がない || ローカルの開発環境を汚したくない場合でも実行可能なように,Dockerコンテナ上で動作できるように修正しました.それに伴いファイルの構成が一部変化しています.

お久しぶりです.以前noteで販売した自作解答が好評だったこともあり,新たに2023年度のプログラミング試験の解答(実際の入力データ+完全解答コード付き)を以下に販売することにしました.



1.実際の入力データについて

実際に2023年度の試験で配布されたテスト入力データも同封しています.
実際にどういった形式で入力が与えられるか試してみたい方はぜひ有効活用してみてください.また,試験問題に関しましては,ここに貼るのはグレーな気がしたので公式HPからダウンロードしてくださると幸いです.

2.解答コードについて

解答は全てPythonで行っています.実行にあたっては,Dockerコンテナを用いて実行することを推奨します.(手元にPython環境がなくても実行できます.)Dockerが手元にない人は,公式サイトからダウンロードしてください.その後の操作に関しては,README.mdにまとめてありますので,適宜ご参照ください.

一応フォーマットには注意を払ってバグがないよう書いたつもりですが,万一バグが見つかった場合は報告いただけると幸いです.また,クソコードをもらっても困ると思うので,購入前に以下4.において添付している見本ライブラリコードに目を通すことをお勧めします.概して解答コードにおいてもこれと同程度のものになっていると思うので,その内容で購買可否を決めていただけますと幸いです.

3.フォルダの構成

リポジトリの主な構造は以下のようになっています:

.
├── Dockerfile
├── README.md
├── data
│   ├── cell.txt
│   ├── maze1.txt
│   ├── maze10.txt
│   ├── maze11.txt
│   ├── maze12.txt
│   ├── maze13.txt
│   ├── maze14.txt
│   ├── maze15.txt
│   ├── maze16.txt
│   ├── maze17.txt
│   ├── maze18.txt
│   ├── maze19.txt
│   ├── maze2.txt
│   ├── maze3.txt
│   ├── neighbor.txt
│   ├── p.txt
│   └── sequence.txt
├── library
│   ├── __init__.py
│   ├── const.py
│   ├── maze.py
│   └── utility.py
├── requirements.txt
├── run_scripts.sh
└── scripts
    ├── problem1
    │   ├── question1_2.py
    │   ├── question1_3.py
    │   └── question1_4.py
    └── problem2
        ├── question2_1.py
        ├── question2_2.py
        └── question2_3.py
  • `README.md`: リポジトリの説明と使用方法です.基本ここだけ見ればいいです.

以下は触る必要ありませんが,一応の説明になります.

  • `Dockerfile`: Docker環境を構築するための設定ファイル

  • `data`: データファイルを含むディレクトリ

  • `library`: 共有ライブラリやユーティリティ関数を含むディレクトリ

  • `requirements.txt`: Pythonの依存関係が記載されたファイル (= 必要な外部ライブラリのリスト)

  • `run_scripts.sh`: すべてのPythonスクリプトを実行するためのシェルスクリプト

  • `scripts`: 実際に実行されるPythonスクリプトを含むディレクトリ


4.プログラミング試験解答

見本として,libraryフォルダを以下に添付しています.
以下のコードと同レベルの解答コードが続きます.基本全てのコードに対して型付けを意識して作成しています.(mypyでフォーマット済み)

以下プログラミング試験解答になります.

ここから先は

0字 / 1ファイル

¥ 990

この記事が気に入ったらサポートをしてみませんか?