trknhr / algorithm-study-group

アルゴリズム勉強会の過去問を置いていきます

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

アルゴリズム勉強会グループ

アルゴリズム勉強会グループにて出題された過去問置き場です

アルゴリズム勉強会手順

アルゴリズム編

  1. 出題者が問題と簡単なExampleを示す。
  2. 回答者が質問をする
    • エッジケースについて
    • データの構造について
  3. 回答者は回答を考える。まずは非効率な方法でも良い
  4. 簡単な例をホワイトボードに書きながらより効率的な方法を考える
  5. 回答者の問題の解き方に対して出題者がOKってなったら実装を開始する
  6. PCにてコードを書く
  7. できたら頭の中でテストをしてみる
  8. 実行する

なるべく書ききってから実行してみよう

実行しながらデバッグは普通の開発では当たり前だが、ここでは面接を想定しているので実行する環境がないかもしれないのである程度自分の頭でデバッグできるようにしたい。 あとPCにデバッグさせるとなんかよくわからんけど動いた的な現象もあるし、頭で考えるほうが本質的な理解も深まる(はず)

システムデザイン・データ設計(OOP, SQL)編

  1. 出題者が問題をだす
  2. 回答者が疑問点やスコープについての質問をする
  3. 最小の構成を考えてホワイトボードに書く
  4. 回答者の考えたシステムをみながら追加の質問を出題者が出す。回答者がそれに答えるを繰り返す。(アクセスが100倍になったら。など)
  5. 一通り終わったら出題者なりのシステムデザインを教える

どのような問題が良いか

基本はアルゴリズムの問題(難しいアルゴリズムを使わなくても解ける)がいいと考えてる。 理由

  • バイナリサーチとかくらいならいいけどあんまり難しいとそもそも面白くない
  • 知識もだけど考え方、より効率の良い計算方法を探したり実装する力を向上させたい

またアルゴリズムにかかわらず以下のような問題は結構良いと思う (問題出す方のハードルも上がりそう)

  • オブジェクト指向のデータ構造の設計
  • SQL
  • システムデザイン(チャットサーバーをどのように設計するかなど)

などなど。プログラマとして強くなれるような問題

一番大事なのは

楽しもう

About

アルゴリズム勉強会の過去問を置いていきます


Languages

Language:HTML 86.1%Language:JavaScript 8.3%Language:TypeScript 3.0%Language:Kotlin 1.4%Language:Python 1.2%