Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JVM言語でもできる、競技プログラミング

 JVM言語でもできる、競技プログラミング

JJUG CCC 2024 Spring
2024年6月18日(日) 10:25 - 10:45

dhirabayashi

June 15, 2024
Tweet

More Decks by dhirabayashi

Other Decks in Technology

Transcript

  1. 2 自己紹介 いわゆるシステムエンジニア – Javaをちょこちょこと – 最近はサーバサイドKotlin 平林 大輝 株式会社テクニケーション

    – 2021年~ 現職 X (Twitter): @dhirabayashi64 競プロ歴について – 2022年から本格的に開始 – 実力は普通
  2. 18 どうやって解くか • 「現れないもの」の合計 – 2 + 4 + 5

    = 11 • 「全部の合計」から「現れるもの」を引いても同じ! – 1 + 2 + 3 + 4 + 5 = 15 – 15 – (1 + 3) = 11
  3. 26 JVM言語(Kotlin)を使って得た実感 • そこそこ安心できる実行速度 – オートボクシング/アンボクシングで遅いことはある • バグなく実装しやすい – コンパイラのチェック、型安全性

    • fluentなリスト操作は競プロでも活きる(※私見) • 不利な点も – 公式解説のコードはだいたいC++かPythonで書かれる – C++やPythonにあるがJavaやKotlinにはないライブラリも
  4. 27 競プロに取り組んで得た実感 • 実装力が鍛えられる – ちゃんと動くコードを素早く書く必要がある – 入念に動作確認している時間がない • 業務外で日常的にプログラミングする手段になる

    – 作る物のアイデアがなくてもプログラミングできる – テストされるのでそれなりにちゃんと書く必要がある • プログラミングが楽しいと思えた
  5. 29 代表的なコンテスト • AtCoder Beginner Contest(ABC) – オンラインコンテスト – ほぼ毎週開催される

    • だいたい土曜日(たまに日曜日) • 21:00 ~ 22:40の100分間 – 直近では7問出題される • 難易度が幅広いのでだいたい誰でも参加できる