ざきの学習帳(旧 zackey推し )

日々の学びを書きます

leetcodeの回答をリポジトリ管理、 ts-jest でテストを書いているはなし

コミュニティの人たちと、leetcodeの問題を週1で解いていく活動をはじめました。

この記事では、leetcode回答までの流れを書き留めておきたいと思います。

leetcode始めたい...という方の参考になれば、幸いです。

leetcode回答の流れ

leetcodeは様々な言語で回答可能となっており、自分はTypeScriptで選択しています。

budougumi0617.github.io

budougumiさんの上記記事を拝見し、自分もCLIを自作したい...と思ったのですが、

LeetCodeのAPIの仕様はドキュメント化されていないので、RustのCLIリバースエンジニアリングして解析する必要があった(Rustわからない)

で、心が折れ

  1. 愚直に回答を手元のVSCode x TypeScriptで記述
  2. Jestでテストを記述
  3. テストで通った回答コードをleetcodeのエディタへペースト、Submit

という流れで実施しています。

テストを書いているのは、単純にJestの素振りをしたいがためです。

リポジトリ

typescript-sandboxleetcodeというディレクトリを作り、leetcode回答専用の環境を整えています。

ts-jestのセットアップ

TypeScript x Jestの環境でテストを書くため、ts-jestのドキュメントを元に環境セットアップをしました。

kulshekhar.github.io

以下抜粋です。

# typescript未導入なら `npm i -D typescript` も必要
npm i -D jest ts-jest

# jest.config.jsの生成
npx ts-jest config:init

結果、やってみてどう?

始めてからまだ3週間かつ比較的簡単な問題ばかりを解いていますが、

  • 自分と他人のコードを比較し、処理効率等で学べる部分がある
  • Jestを少し学んだ
  • 型に詳しくなった
  • 頭の体操になる(何もしないよりはいい)

というような効果があると感じています。

何を勉強しようか...と悩まれている方は、とりあえずleetcodeに手を伸ばしてみるのも一興と思います。