Skip to content
Upayan Ghosh
Menu

DSA practice

DSA

Every number on this page is a live count of my LeetCode solutions repository, re-fetched from GitHub each time this page loads. What you are looking at is a count GitHub returned within the last hour, not a figure I typed in by hand and might forget to update.

Ledger

problems solved

solved in C++

solved in Python

last push

Difficulty

The split is what it is. I have not solved these evenly, and I am not going to make the chart pretend otherwise.

By difficulty
Bar chart: By difficulty, Easy 54, Medium 32, Hard 10Easy: 5454EasyMedium: 3232MediumHard: 11Hard
View as table
By difficulty, tabular data
MetricValueMethodMeasured
Easy54regex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6
Medium32regex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6
Hard1regex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6

The pipeline

The mechanism here is the interesting part, not the count. A small server function calls GitHub’s Git Trees API once for a full recursive listing of the repository’s file tree, groups the files it gets back by problem directory, and counts a solved-in-this-language mark from the file extensions it finds. It then fetches every problem’s README from GitHub’s raw-content CDN in parallel and reads the difficulty off a machine-generated header line already present in every one of them. If any part of that fails (GitHub is unreachable, a response won’t parse, nothing comes back), the page shows a labelled failure instead of a wrong or a cached number.

Every file in this repository landed inside one short import window, not built up problem by problem over months. That’s why this page has no commit-history graph and no problems-per-week chart: either would dress up one afternoon of copying local solution folders into a public repository as a practice cadence that never happened.

What this doesn’t measure

This counts problems solved, not attempts, not time spent, and not interview readiness. A problem I passed on one clean submission and one I failed nine times before passing count exactly the same here. Solving a problem once and being ready to solve a new one under interview pressure are different skills, and this page only ever measures the first.