PhDeezNutz said:
For the first 6 or 7 chapters in Griffiths I did all the “in chapter problems” (as opposed to the end of the chapter problems). Since they are numbered it wasn’t hard to count.
For the intro to combinatorics and graph theory I went over problems from several books; there were books with solved exercises so I covered them and also found exercises from websites some with solutions and some without. I also found a book of Riodran and another one on combinatorial identities which can be solved also algebraically, so obviously solving them algebraically is the easy route which I did; these didn't have solutions just quite a lot of identities. I can't recall if I did them all or just the tough ones.
UG in maths and physics combined is quite a tough degree; I have quite a good memory so it can help in closed text exam where the lecturers ask us to know how to prove such and such theorems by heart or know to state the theorems.
After a few years later I found one of the tough recursion relation problems in a book on Numerical methods in C++ in PDE; it's called "Solving PDEs by C++" by Yair Shapira; I think it's the 1.19 example in the book on Pascal's triangle.
Nowadays, the syntax of the codes there must be obsolete...
P.S
some people in tests just say that something such and such exists because of some theorem, but they don't state what the theorem actually says or if it has a name. (for example Liouville's theorem in complex analysis or Roche argument theorem, etc). What I did in such closed book or without formula sheets is repeating my notes several times, and in maths after repeating it several times, I then stated what each theorem said without looking in my notes and also repeated the proofs without looking at my notes.
I was quite obsessive in my studies...
But it seems it has waned with time...