Security and Trust are Priceless

Some articles about security and trust: セキュリティやトラストなどに関して、情報を共有することを目的としています

MWS Cup2023、CSS2023に参加しました

MWS Cup 2023

MWS Cup 2023は卍脳筋鹿煎餅卍NEONEOというチームから参加し、お陰様で静的解析部門で1位、DFIR部門で2位の成績を収めることができました。 自分はDFIRを担当したのですが、静的が頑張って1位を取ってくれたのに対して、DFIRは25点満点で24点で2位という悔しい結果になってしまいました。 静的担当の2人には、申し訳ございませんでした。 来年もし出場できるなら、リベンジしたいです。

CSS2023で気になった発表

1D4: オフェンシブセキュリティBoF

オフェンシブセキュリティに関して、様々な質問や議論が行われました。 オフェンシブセキュリティをやる際には、脆弱性の報告や発表などに関して倫理観の伴った行動が非常に重要だと思いました。

セキスペ合格しました(2022 秋 情報処理安全確保支援士試験)

2022 秋に行われた情報処理安全確保支援士試験(旧セキスペ)に合格したので、受験するまでの過程と感想を記録しておこうと思います。

現在、B4でセキュリティ系の研究室には所属していますがセキュリティに関して広く浅く勉強したいと思いセキスペ受験をしようと思いました。 2021秋の応用情報に合格した後に、午前1免除がなくならない内にどれかスペシャリストを受けたいと思ってネスぺかセキスペかで迷っていました。2022春のネスぺに申し込んではいましたが時間の都合で勉強が不十分でしたので受験を諦めており、次の2022秋にはネスぺはなかったのでセキスペを受けることにしました。

2022 9月

まずは応用情報と同様にテキストを読もうと思い、上原さんの本を自分で購入して読みました。 https://www.amazon.co.jp/dp/4798173193www.amazon.co.jp

テキストを読みのに9月中旬から下旬あたりまでかかり、その後に本番直前までみよたん本で過去問演習を行いました。 みよたん本は研究室で購入して頂くことが出来ました。ありがとうございました。 https://www.amazon.co.jp/dp/4865752404www.amazon.co.jp

午前IIは過去問道場で演習してどの年度でも8割越えで余裕だったのでそこまで重点的に対策は行っていません。そもそも、午前IIが通るか怪しいラインだと午後試験もかなり厳しいと思われますのでまずは知識を固めることが絶対に必要だと思います。 午後I, 午後IIはまずはみよたん本に解説のある演習問題を先に解き、みよたん本に解説はないけど解いてみるとよいとされていた問題を解いていきました。自己採点結果にはかなりブレがあり, 合格ラインの6割を大きく下回ったり, 上回ったりしたので受かるかどうかかなり怪しいと思って受験しました。

試験本番

試験本番では午前IIはまず確実に通ると思う程度には答えられました。 午後Iは問題1は知識的に怪しい部分があったので消去法で問題2, 3を解きました。こちらのほうはかなり手ごたえがあり、良くて満点、悪くても8割はあると思いました。 午後IIは問2を選んだ理由は明確には思い出せないのですが、パット見でどちらでも良いと思ったので、解答する問題数が点数のブレを抑えて受かりやすいと思ったので問2を選んだ記憶があります。 こちらのほうも手ごたえは午後Iと同じくらいはありました。

試験結果

午前II、午後Iは体感とそこまで点数の乖離はありませんでしたが、午後IIは大きく乖離がありました。やはり実務経験がない人にとって午後IIにおいて作問者が考える模範解答を出すことは難しいのだと思われます。 逆に実務経験があれば午後Iのほうが難しく、午後IIのほうが簡単だと聞きます。 何はともあれ合格はしたので良かったと思います。

感想と今後のセキスペについて

来年度からは午後I, IIの区分が廃止されて午後試験と一つになるという大きな変更が入るので午後I, II構成が最後の時にセキスペ初挑戦で一発合格できたのは幸運??だったのかもしれません。

www.jitec.ipa.go.jp

これに関しては過去問演習をしていても問題のクオリティに対して私レベルですら少し思うところがあり、作問してくれる人が中々いないとも聞いているのでどうなんだろうなと思っているところにこのニュースが入ってきました。村山さんの作問コストが原因とする趣旨のツイートもあり、やはり作問コストと問題のクオリティ維持の関係でこのような変更となったのかなと思われます。

飽くまで希望的観測ですが、大きく変更のあったり初回の試験は難易度調整が難しいと思われ、難易度が下がりがち?なので2023秋のセキスペはもしかしたら狙い目かもしれませんが責任は持ちません。

総じて自分としては今回の受験と勉強で目標通り浅く広くセキュリティについての知識が付いたのでセキスペ受験して良かったと思います。

支援士の登録に関しては、一応法的に罰則がある、費用がかなりかかるというデメリットに対して自分にとってはメリットがほぼ皆無なので登録はしない予定です。もちろん、支援士でなくとも罰則に反するようなことを行う意図はありません。法的な側面に関しては詳しくありませんが以下のブログが参考になるかと思われます。

qiita.com

合格者レベルのセキュリティに関する知識の保持の証明については合格事実程度で十分だと思っているのも登録しない理由としてあります。将来的に就職先の会社が費用を持ってくれる上で業務上、営業上どうしても登録する必要があるのなら登録してもいいかなと思っていますが自分から積極的に登録することは現制度ではないかなと思っています。これに関しては支援士の登録数が初の前年割れをしたというニュースもあるのでそのうち制度改革があるのかなと思っています。

次の2023春は前回受けられなかったネスぺを受けようかなと思っています。 xtech.nikkei.com

2023/01/24 修正

新しい出題構成のセキスペは2023春からではなく、2023秋からでした。2023春が現在の出題構成の最後となるようです。申し訳ございません。

2022第1回 NAIST合格体験記

はじめに

2022年度 第1回 NAIST院試(修士課程, 情報)を受け、合格したのでこれから受験される方々の参考の為に合格に至るまでの過程を残しておこうと思います。

まず、自分の状況について説明します。

  • 大学:国立大学情報工学系
  • 研究室:セキュリティ系
  • 卒業研究分野:ネットワークセキュリティ
  • 技術力:極めて低い
  • 出願先:NAIST, JAISTの併願
  • 添削(NAIST, JAIST), プレゼン発表練習(JAIST):B4の研究室の先生方(2人)にお願い

過去セキュリティ関係でやったことはセキュリティミニキャンプオンライン2021に参加する、大学の情報セキュリティの授業を受ける程度でCTFなどもしていなかったので特にネットワークやセキュリティに関して知識や技術がある状態ではありませんでした。ネットワークセキュリティ分野の研究がしたかったので、出願先は下のサイトで目星を付けて探していきました。 github.com 旧帝などは入試に学科試験がありその勉強がめんどくさい、過去問などに関して内部生と差がありフェアな競争ができないだろう、ネットワークセキュリティに関してはそこまで行きたいと思える研究室が無いといった等の理由で、旧帝など学部が存在する大学は候補からは外しました。NAIST, JAISTは学部が存在せず修士課程からの大学院大学なので入試方法がNAISTはGPA?(書類審査), TOEIC, 数学, 小論文+面接で、JAISTは小論文+面接だけと学科試験のように興味のないことを勉強する必要がないのがとても魅力的でした。反面、どちらも小論文の完成度が重要で、自分は研究室の先生方、それも2人の全面協力の元で添削、指導して頂けましたが(本当に感謝)、そのような環境を得ることができない人もある程度おられると思うのでその点で自分は有利だったと思います。ただ、NAIST, JAIST共に先生か学生の方々に添削を依頼すれば基本的に引き受けて頂けると思いますし、自分もNAISTの研究室の方々には2度添削して頂きました。ありがとうございました。研究環境についてはNAIST, JAIST共に大学院全体の評判が高く、志望研究室も見学や面談を通じて良さそうだと感じました。強いて欠点を挙げるとしたら、特にJAISTは田舎すぎて周りに何もないのと、両方とも世間的な知名度が皆無というくらいだと思います。これはあったほうがいいものとは思いますが修士課程で研究をちゃんとしたいなら特に気にすることではないと思います。また、真面目に頑張っていれば就職に関しては全く心配することはないと思います。

受験する研究室がある場合は必ず希望研究室の先生に連絡を取ってください。これは他の大学院の話ですがまったく教員とコンタクトを取らずに出願した場合、試験と関係無く不合格になるという事例を見たことがありますし、そもそも外部から行くのにその研究室や先生のことを何も知らない状態で受験するのはあまりにリスクが高いですし、教員と学生のミスマッチはできる限り避けるべきだと思います。

2022 3月

まず、希望研究室の先生とお話がしたかったので研究室見学を申し込みました。 本命はNAISTのほうでしたので、NAISTのほうは現地に赴いて研究室見学をして頂きました。 JAISTに関してはオンラインで数時間程度先生に面談して頂きました。 isw3.naist.jp www.jaist.ac.jp

2022 4月

B4となり研究室に配属されたので卒業研究のはじめとして論文を読む練習をしていました。 4月末にNAISTの為にTOEICの公開テストを受け、結果としては750点でした。4月末受験だと結果が来るのが5月末だったのでNAIST, JAIST共に例年6月頭頃にある出願に間に合うか少し怪しかったです(JAISTTOEICはありません)。NAISTに出願される方は3月までにTOEICを受けるのをおすすめいたします。

2022 5月

もうそろそろ小論文を書かないとまずいと思い書き始めました。結果としては小論文を書き始めるのが遅すぎました。小論文は卒業研究のテーマから派生させようと考えていたのですが、肝心の卒業研究テーマがなかなかこれといったものが決まらず非常に焦りました。なんとかテーマを設定し、書き始めました。JAISTにも併願しており、基本的な内容はNAISTJAISTと同じにしました。 NAISTは「卒論など学部時代の取り組み」と「NAISTでやりたい研究」の2つのテーマについてそれぞれの配分は自由で書き、様式はA4用紙2枚程度で図表有りに比べ、JAISTは「JAISTでやりたい研究」について書き、様式は1000字程度で図表無しなので、JAISTのほうが制限が厳しいです。まず、NAISTのほうを書き、自分の研究室の先生方に厳しいご指摘を頂きながら添削して頂き、形式、内容面を整えていきました。その後、JAISTのほうも書き、出願の際に小論文を提出しました。NAISTの出願はJAISTより後でしたのでギリギリまで修正を加えました。そして、無事に両方とも出願できました。 しかし、小論文の内容について、引き続き調べ続けたところ、単純な間違いから内容を変えたいところなどが見つかりましたが提出後に変更はできないので数学と面接対策に注力するしかないと思いました。

添削等について、B4の研究室の先生方がここまで協力して頂けたというのは本当に恵まれていたと思います。私の大学でも中には自大学への愛が強すぎるあまり外部院進を許さない先生の話も聞いていたり、個人の環境は様々だと思うのでNASIT, JAISTの先生や学生の方々を頼るなど上手く立ち回るしかないと思います。個人的な話ですが、授業である先生に「人に聞くのも一種の才能」と言わたことがあります。本当に困っているのに遠慮して助けを求められない人に対しては非常に良い言葉だと思いました。当然ですが、人間の礼儀として何でもかんでも人に聞くのではなく、最低限自分ができる範囲で努力を尽くす必要はもちろんあると思います。

2022 6月

6月から本番までは基本的にはNAISTの数学の勉強に時間を多く費やしました。試験本番直前に過去問をやり始めるというギリギリのスケジュールになってしまいました。数学の勉強法としてはまず過去問からどのような問題が出るかを調べ、演習に取り組みました。微積線形代数にはそれぞれ以下の書籍で試験で出そうな範囲を勉強しました。

https://www.amazon.co.jp/gp/product/4781913814/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1:

https://www.amazon.co.jp/%E5%BC%B1%E7%82%B9%E5%85%8B%E6%9C%8D-%E5%A4%A7%E5%AD%A6%E7%94%9F%E3%81%AE%E7%B7%9A%E5%BD%A2%E4%BB%A3%E6%95%B0-%E6%94%B9%E8%A8%82%E7%89%88-%E6%B1%9F%E5%B7%9D%E5%8D%9A%E5%BA%B7/dp/4489022417/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2DBCN57NVLFCI&keywords=%E7%B7%9A%E5%BD%A2%E4%BB%A3%E6%95%B0+%E5%A4%A7%E5%AD%A6%E7%94%9F&qid=1658738072&s=books&sprefix=%E7%B7%9A%E5%BD%A2%E4%BB%A3%E6%95%B0+%E5%A4%A7%E5%AD%A6%E7%94%9F%2Cstripbooks%2C146&sr=1-1

私が調べた範囲で、過去の合格体験記などではマセマの微積線形代数を使う方がほとんどでした。NAISTが試験範囲を指定している教科書はどちらも大学数学の教科書のスタイルなので問題演習がつらいと思いやめました。特に線形代数線形代数イントロダクションは値段もかなり高いです。

2022 7月

7/1(金)に実施される事前接続テストを忘れてすっぽかしてしまいました。というのもJAISTのほうの事前接続テストと本番の間にNAISTの事前接続テストがあり、頭がJAISTでいっぱいになっており完全に忘れていました。しかし、土日が明けて月曜日にメールでお詫びと確認をしたところ特に減点があったり、接続トラブル時の救済がないということではないようです。ありがとうございました。本番は7月8日(金)にありました。

本番

数学

線形代数は変換が6つ出され、それぞれが線形変換であるかどうかを示す問題でした。これは簡単で和とスカラー倍について閉じていることを示すだけです。 微積は非常に簡単な微分計算をし、増減表を書いて最小値を求める問題でした。高校3年の数学III相当の教科書の例題レベルの内容でした。 解いた順番としては、微積が信じられないくらい簡単だったので微積から解き始めました。次に、線形代数の変換を解きましたが、6つ中の3つを示した時点で時間が来てしまい終了となりました。 ただ、試験官の方からは線形代数もわかっているのねとコメント頂いたので恐らく良い点数だと思います。

面接

数学の後、何分か待つと小論文に関する面接が始まりました。まず、冒頭3分で小論文の内容について説明してくださいと求められました。これはJAISTのプレゼンの短縮版を即興でやることでなんとか乗り切りました。その後、論文の内容について、具体的に研究手法をどのように実施していくかを聞かれました。ただ、JAISTと違い、小論文の内容に関して厳しい指摘や説明しづらい質問はあまりありませんでした。また、小論文と関係なく、情報工学関連などの専門以外でアピールできることはないかと言われ、どのように答えればいいかわからず慌てたのでとりあえず趣味を使って精神的に健康であることをアピールする為にロードバイクで温泉旅をしている話をしました。これは事前に希望していた研究室の先輩から、研究だけでなく、一緒にちゃんと研究をやっていけるかを就活の面接のように見られるということを聞いていたのがあります。面接に関しては特に問題なく終わりました。また、JAISTの30分に比べて10分と非常に短く、質問の内容的にもおそらく本当に本人が書いた論文かをチェックする程度のことしかできなかったと思います。

結果

2022/07/20追記

NASIT合格していました

2022/07/21追記 学生宿舎(寮)の優先入居権を頂きました

2022/08/08追記 研究室配属内定頂きました

2023/01/17 2022年9月に入学意思確認書を提出したので、NAISTに進学することが確定しました。

2023/04/26 入試の成績開示をしたところ第一回入試の合格最低点が148点で、私の点数は168点でした。合格最低点が昨年より10点ほど上がっているとの情報もあるので、受験される方は例年より入念な準備が必要と思われます。

2022第1回 JAIST合格体験記

はじめに

2022年度 第一回 JAIST院試(修士課程)を受け、合格したのでこれから受験される方々の参考の為に合格に至るまでの過程を残しておこうと思います。

まず、自分の状況について説明します。

  • 大学:国立大学情報工学系
  • 研究室:セキュリティ系
  • 卒業研究分野:ネットワークセキュリティ
  • 技術力:極めて低い
  • 出願先:NAIST, JAISTの併願
  • 添削, プレゼン発表練習:B4の研究室の先生方(2人)にお願い

過去セキュリティ関係でやったことはセキュリティミニキャンプオンライン2021に参加する、大学の情報セキュリティの授業を受ける程度でCTFなどもしていなかったので特にネットワークやセキュリティに関して知識や技術がある状態ではありませんでした。ネットワークセキュリティ分野の研究がしたかったので、出願先は下のサイトで目星を付けて探していきました。 github.com 旧帝などは入試に学科試験がありその勉強がめんどくさい、過去問などに関して内部生と差がありフェアな競争ができないだろう、ネットワークセキュリティに関してはそこまで行きたいと思える研究室が無いといった等の理由で、旧帝など学部が存在する大学は候補からは外しました。NAIST, JAISTは学部が存在せず修士課程からの大学院大学なので学部からの内部生が存在せず、入試方法もNAISTはGPA?(書類審査), TOEIC, 数学, 小論文+面接で、JAISTは小論文+面接だけと学科試験のように興味のないことを勉強する必要がないのがとても魅力的でした。反面、小論文の完成度について、自分は研究室の先生方、それも2人の全面協力の元で添削、指導して頂けましたが(本当に感謝)、そのような環境を得ることができない人もある程度おられると思うのでその点で自分は有利だったと思います。ただ、NAIST, JAIST共に先生か学生の方々に添削を依頼すれば基本的に引き受けて頂けると思いますし、自分もNAISTの研究室の方々には2度添削して頂きました。ありがとうございました。研究環境についてはNAIST, JAIST共に大学院全体の評判が高く、志望研究室も見学や面談を通じて良さそうだと感じました。強いて欠点を挙げるとしたら、特にJAISTは田舎すぎて周りに何もないのと、両方とも世間的な知名度が皆無というくらいだと思います。これはあったほうがいいものとは思いますが修士課程で研究をちゃんとしたいなら特に気にすることではないと思います。また、真面目に頑張っていれば就職に関しては全く心配することはないと思います。

受験する研究室がある場合は必ず希望研究室の先生に連絡を取ってください。これは他の大学院の話ですがまったく教員とコンタクトを取らずに出願した場合、試験と関係無く不合格になるという事例を見たことがありますし、そもそも外部から行くのにその研究室や先生のことを何も知らない状態で受験するのはあまりにリスクが高いですし、教員と学生のミスマッチはできる限り避けるべきだと思います

2022 3月

まず、希望研究室の先生とお話がしたかったので研究室見学を申し込みました。 本命はNAISTのほうでしたので、NAISTのほうは現地に赴いて研究室見学をして頂きました。 JAISTに関してはオンラインで数時間程度先生に面談して頂きました。 isw3.naist.jp www.jaist.ac.jp

2022 4月

B4となり研究室に配属されたので卒業研究のはじめとして論文を読む練習をしており、JAISTに関しては特に動いていませんでした。 併願していたNAISTの為にTOEICを4月末に受けました。4月末だと結果が来るのが5月末だったのでNAIST, JAIST共に例年6月頭頃にある出願に間に合うか少し怪しかったです(JAISTTOEICはありません)。NAISTにも出願される方は3月までにTOEICを受けるのをおすすめいたします。ちなみに750点でした。執筆時点でNAISTの結果はまだです。

5月

もうそろそろ小論文を書かないとまずいと思い書き始めました。結果としては小論文を書き始めるのが遅すぎました。小論文は卒業研究のテーマから派生させようと考えていたのですが、肝心の卒業研究テーマがなかなかこれといったものが決まらず非常に焦りました。なんとかテーマを設定し、書き始めました。NAISTにも併願しており、基本的な内容はNAISTJAISTと同じにしました。 NAISTは「卒論など学部時代の取り組み」と「NAISTでやりたい研究」の2つのテーマについてそれぞれの配分は自由で書き、様式はA4用紙2枚程度で図表有りに比べ、JAISTは「JAISTでやりた い研究」について書き、様式は1000字程度で図表無しなので、JAISTのほうが制限が厳しいです。まず、NAISTのほうを書き、自分の研究室の先生方に厳しいご指摘を頂きながら添削して頂き、形式、内容面を整えていきました。その後、JAISTのほうも書き、出願の際に小論文を提出しました。NAISTの出願はJAISTより後でしたのでギリギリまで修正を加えました。そして、無事に両方とも出願できました。 しかし、小論文の内容について、引き続き調べ続けたところ、単純な間違いから内容を変えたいところなどが見つかりましたが、JAISTは冒頭7分でプレゼンできるのでそこで挽回しようと考えました。

添削等について、B4の研究室の先生方がここまで協力して頂けたというのは本当に恵まれていたと思います。私の大学でも中には自大学への愛が強すぎるあまり外部院進を許さない先生の話も聞いていたり、個人の環境は様々だと思うのでNASIT, JAISTの先生や学生の方々を頼るなど上手く立ち回るしかないと思います。個人的な話ですが、授業である先生に「人に聞くのも一種の才能」と言わたことがあります。本当に困っているのに遠慮して助けを求められない人に対しては非常に良い言葉だと思いました。当然ですが、人間の礼儀として何でもかんでも人に聞くのではなく、最低限自分ができる範囲で努力を尽くす必要はもちろんあると思います。

6月

面接本番では冒頭7分で小論文の内容についてプレゼンテーションをする必要があるので、先生方のご協力の下その作成と練習に取り組みました。小論文は字数制限があったので4つあった参考文献(英語論文3本 + Ciscoの資料)を加えました。NAISTのほうはスペースに余裕があったので最初から小論文に参考文献を書きました。また、プレゼン練習で頂いた先生方のご指摘や過去の受験期ブログなどから想定質問集を作成してその回答を用意しました。

7月

7月3日(日)に面接本番でした。まず、冒頭7分でプレゼンテーションを行い、その後23分間、口頭試問が行われました。先生方は3名おられ、おそらく真ん中に希望していた研究室の先生、両脇にそれ以外の先生でした。まず、右の専門外の先生からプレゼン内容がよくわからなかったのと、早口だと指摘されてしまいました。小論文やプレゼンの内容については、かなり専門的な内容なので専門外の先生にわからないのは仕方ないと思いました。その後、忘れてしまったのですがかなり的外れな質問をされて逆に回答に困りましたが一応なんとなく回答しました。次に、左の先生から研究内容についてある程度答えにくいですがまっとうな質問が来ました。最後に真ん中の希望研究室の先生からも質問が来ましたがやけに長い前振りからの質問だったので時間稼ぎ?かと疑いましたが、そもそもこういうことで解決できないの?という感じの質問が来て回答に困りました。また、何故このような専門的な知識があるのかを聞かれ、現在セキュリティの研究室にいると答えました。次に、左の先生から専門用語を使わずに(プレゼン内容を)説明できないか?と聞かれましたが、どう考えても無理なので無理と回答しました。当時は正確性を欠くので無理と思ってしまったのですが、正確性を欠いてでもいいから専門外や素人の人にも分かる説明を期待されていたのだと思います。また、それのフォローかと思いますが、プレゼンで出した技術はどういうメリットがあるのかという質問の回答の中で使ったVLANというネットワークの用語について一般人でもわかるように説明しろと言われたので、ネットワークを物理的にではなく、仮想的に分けるのだと一応素人でもわかる範囲で説明しました("ネットワークを分ける"というかなり不正確な表現ですがそういう試問でしたので)。最後に、小論文の内容、特に実際に導入することを検討した場合の現実的な話について質問というよりアドバイスを頂きました。一瞬質問かと思って回答したのですが、アドバイスだったようです。 以上で口頭試問が終わりました。

口頭試問に関しては終始プレゼンと小論文に関することでした。エントリーシートに書く特異な専門科目(私の場合はネットワーク、セキュリティ、プログラミング言語)についての質問がよくあるという事前情報だったのですが、私の場合はほぼ質問がありませんでした。強いて言えばVLANですが、これは自分から口に出した単語なので事前に用意されていた試問ではないと思います。小論文の内容が専門的すぎたのでそこに関しては十分あるだろうという評価の元に質問されなかった、先生があまり現時点での知識量は気にしていない、質問する時間が無かったなど色々理由は推測はできますが正確なところはわかりません。

結果

合格していました。受験番号の振り方と合格者数を見る限り倍率は2倍弱だったと思います。 いくつかミスはしてしまいましたが、口頭試問中も私の回答に対して真ん中の希望研究室の先生がうんうんと頷いてくださっていたので、落ちているとはあまり思っていませんでした。 小論文、プレゼン、口頭試問の配点の比率等は不明ですが、きちんと先行研究や関連研究について英語論文も含めて調べ、その解決策、手法について十分に時間をかけて考え、調査する必要があると思います。ただ単に何かの分野の研究がしたいではダメだと思います。英語論文に関して私の場合は、10k円程度払って登録した情報処理学会デジタルライブラリに参考になる日本語論文がないので、英語論文だけで探す羽目になったのですが。

JAIST院試に関しては以上となります。今は本命であるNAISTの結果待ちなので何とも言えませんが、決してJAISTNAISTに劣るということではないのでそこは誤解の無いようにお願いしたいです。自分の個人的な事情などがあってのことなのであしからず。

2022/7/20 追記

NASIT合格していました

2022/10/25 追記

NAISTのほうに進学することを決めました

Golangの相対パスでのimportは非推奨-プログラミング言語Goのサンプルコード:gopl.io/ch2/cf

春休み中にWeb開発がしたいので、ずっと積読していたプログラミング言語Goという書籍を読んで、練習問題等もやっていたのですが、練習問題2.1あたりで少し問題が出ました。 それはimportにおいて、相対パス指定した際にモジュールが読み込めないというエラーです。 相対パス指定はどうやら非推奨のようで、

go mod init [モジュール名]

等でgo.modファイルを作成して、importする際も

import "モジュール名/読み込みたいパッケージ名"

のようにするとうまくいきました。 詳しくは下のようなページを見た方が分かりやすいと思われます。

zenn.dev

プログラミング言語のサンプルプログラムのgopl.io/ch2/cf/main.goではimportにおいて

import(
    (省略)
    "gopl.io/ch2/tempconv"
)

というように相対パスを使っていましたので、私の環境においてmoduleが読み込めないというエラーを吐かれました。 これを修正するにはまず、ch2ディレクトリに移動して

#mainでも何でもいい
go mod init main

を打って、go.modを作ります。次に、cf/main.goでimport部分を

import (
    "ch2/tempconv"
    "fmt"
    "os"
    "strconv"
)

にすると動くようになります。

環境($GOPATH)によっては相対パスでも読み込めるかもしれませんが、相対パスが非推奨とされている以上、このサンプルコードも修正されてほしいなと思いました。 もし同じ本の同じコードでエラー吐いた方がおられ、このページに辿り付けた方がいれば、参考になればと思います。

競プロ初参加(AtCoder ABC239)

感想

競プロに初参加しました。 参加しようと思って1年以上も経っていたのですが、twitter眺めてたらコンテスト開催のツイートが流れてきたのでなんとなく参加しました。

言語は大学の授業やコーディングテスト等でも使っていたPythonを選びました。 ここ半年はJavaばっか書いていたので、違和感があったのと、色々忘れていました。 結果としては、A、B、Cの3完で、Dは方針はわかりましたが実装につまづきました。 他の問題は見てすらいませんでした。 浮動小数点型の精度に関する問題とかもあって、開発等でも役に立ちそうと思いました。 競プロのこと考えたらC++, Pythonあたりの言語になると思いますが、GolangPHPとかの今後の個人開発に使う予定の言語のキャッチアップとして使ってもいいのかなと思います。 今のところは競プロは自分にとってアルゴリズムの勉強、コーディング練習、インターン・就活とかの為という位置づけです。

今後の目標は最低限入茶することですね。 ゆくゆくは水色あたりになりたいですね。

Dのふりかえり

可読性とか色々ボロがありますが競プロの解答なので見逃して頂けると幸いです。 ルールを見ると、要は「はよACとれたらええねん」という姿勢でやるのが正解なのかなと思っています。

間違っていた部分は、素数判定部分でした。 素数判定に関しては公式解説のエラトステネスの篩の部分をそのまま組み込みました。 そうしたら全部のテストケースが通ってACになりました。(これで素数判定部分があかんかったことに気付きました) 元々はTakahashiとAokiの選ぶ数字を全探索して、その都度素数判定する関数を実行していたので非効率な処理でした。

参考までにソースを貼っておきます。

def simulate(a,b,c,d):
    prime=[True]*201
    prime[0]=False
    prime[1]=False
    for p in range(15):
        if prime[p]:
            for i in range(p*p,201,p):
                prime[i]=False
    for i in range(a, b+1):
        count =  d - c + 1
        for h in range(c, d+1):
            #print(i,h,count)
            if(prime[i + h] == True):
                break
            else:
                count -= 1
            if(count == 0):
                #print(i)
                return "Takahashi"
    return "Aoki"


if __name__ == '__main__':
    a, b, c, d = map(int, input().split())
    print(simulate(a, b, c, d))