Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

令和4年度春期 応用情報午後問3

令和4年度春期 応用情報技術者試験(AP)の午後問題3は、

  • 数独(パズルの解答を求めるプログラム)

に関する問題でした。

数独は、Project EulerProblem 96で取り組んだことがあるのですが、試行錯誤を繰り返しながら作ったプログラムを今、振り返って見てみると恥ずかしいですね。前回は、Rubyで取り組んだので、今回はPythonで挑戦してみました。

Pythonはまだまだ取り組み始めたばかりですので、アドバイスなどコメントいただければ勉強になります。

プログラム例(r04h_ap_pmq3.py:データ構造Z導入前)

実行結果

% python r04h_ap_pmq3.py
281493765
946257381
573168429
495671238
618325974
327849516
762984153
159736842
834512697  

プログラム例(r04h_ap_pmq3_kai.py:データ構造Z導入後)

データ構造Zの初期化処理(z_init)と更新処理(z_update)を導入したものですが、データ構造Zの更新前にZのコピーを行っているので実行速度は改善されてません。 更新処理を取り消す処理をうまく書くことができたら、データ構造Zのコピーが不要になると思うのですが、中々難しいですね。

関連