Pursuing Theoretical Computer Science after CS major So I am currently a sophomore majoring in Computer Science. In the Data Structures course that I am currently studying, I studied the basics of complexity of a program and big O-notation, etc. That got me interested in complexity theory and maybe pursuing TCS later on.
I have always had a great interest in mathematics and although I chose not to major in it (The math department at my university is not very good), I still plan to take some courses like Analysis, Abstract Algebra etc. (I have already taken Discrete Mathematics).  Initially, I started as a physics major so I have also taken two Quantum Mechanics courses.
I was just wondering if graduate admissions in TCS require a minor or major in mathematics or just some specific courses. Because, as far as my mathematical knowledge/skill is concerned, I think I have a strong background since I have always enjoyed solving problems involving proofs (although maybe not very formal ones) and sometimes just solving questions as a hobby.
Which courses are recommended to take if I want to maybe go into TCS later? Considering that I have 2 years left for my undergrad. Also, what are other possible sub-fields in TCS that I could consider?
The math/phy courses I have already taken are: LA, Calc 1 and 2, Discrete math, QM 1 and 2, Probability.
In order to get some feeling of what TCS might look like, I recommend watching the lectures given by Prof. Ryan O'Donnell:
https://www.youtube.com/c/RyanODonnellTeaching/playlists
And lectures given by Prof. Tim Roughgarden:
https://www.youtube.com/channel/UCcH4Ga14Y4ELFKrEYM1vXCg/playlists
And by Prof. Jeff Erickson:
https://www.youtube.com/channel/UClzjdrM8L81bVX_a6u6Hobg/playlists
You may also want to browse some of the podcasts by Simons Institute:
https://www.youtube.com/c/SimonsInstitute/playlists
Good Luck!