コミュニティの人たちと、leetcodeの問題を週1で解いていく活動をはじめました。
この記事では、leetcode回答までの流れを書き留めておきたいと思います。
leetcode始めたい...という方の参考になれば、幸いです。
leetcode回答の流れ
leetcodeは様々な言語で回答可能となっており、自分はTypeScriptで選択しています。
budougumiさんの上記記事を拝見し、自分もCLIを自作したい...と思ったのですが、
LeetCodeのAPIの仕様はドキュメント化されていないので、RustのCLIをリバースエンジニアリングして解析する必要があった(Rustわからない)
で、心が折れ
- 愚直に回答を手元のVSCode x TypeScriptで記述
- Jestでテストを記述
- テストで通った回答コードをleetcodeのエディタへペースト、Submit
という流れで実施しています。
テストを書いているのは、単純にJestの素振りをしたいがためです。
リポジトリ
typescript-sandbox
にleetcode
というディレクトリを作り、leetcode回答専用の環境を整えています。
ts-jest
のセットアップ
TypeScript x Jestの環境でテストを書くため、ts-jest
のドキュメントを元に環境セットアップをしました。
以下抜粋です。
# typescript未導入なら `npm i -D typescript` も必要 npm i -D jest ts-jest # jest.config.jsの生成 npx ts-jest config:init
結果、やってみてどう?
始めてからまだ3週間かつ比較的簡単な問題ばかりを解いていますが、
- 自分と他人のコードを比較し、処理効率等で学べる部分がある
- Jestを少し学んだ
- 型に詳しくなった
- 頭の体操になる(何もしないよりはいい)
というような効果があると感じています。
何を勉強しようか...と悩まれている方は、とりあえずleetcodeに手を伸ばしてみるのも一興と思います。