You have zero understanding of prison if you even jokingly think of it as a solution.
I think your issue is actually a lot like dieting.
Hear me out.
See, it's easy to stay in shitty habits when the stuff that's bad for you is easy to get. This is not just fast food, it's also when the fried stuff is at the front of the fridge or easier to make.
We humans have laziness built into us. It's probably got an evolutionary advantage, in that wanting to not work too hard can lead to innovation.
So for dieters, setting out a beautiful bowl of fruit and making it easy to take some can be helpful. So does not buying the bad stuff in the first place. That way, you only have to say no one time.
One thing about your situation is, you clearly have some variation of motivation because of your fitness level and your car.
So think about how you can apply that elsewhere in your life.
To return to the dieting example, not buying weed would be step one to not using it as much. If you have a lot of money and it's burning a hole in your pocket, then have the Payroll department at work send a significant amount of it to retirement and a shorter term investment portfolio so you can have $$ for your golden years and $$ to eventually move out. Set an ambitious savings goal with high percentages and amounts.
You are young enough that you could be sitting on an incredible nest egg when you retire (I know that feels like it's a thousand years away, but the time will go faster than you think. Plus you will get a serious tax break).
Being cash poor right now will also make it harder to just smoke your life away. If you buy, use it at a friend's house and not your bed. Because right now, you're marrying sleep and relaxing with smoking. If you start to break this link, eventually it will stay broken.
Consider what you are getting your degree in. You sound like you're bored silly. So why not change your major? Unless you're going to medical school, the truth is, it doesn't matter what your BA is in, long as you have one. Mine is in Philosophy, for example, and I work in business credit. So you may be smoking in that instance just because you're bored. This is something you can do something about.
As for work, if you're smoking to get through your days, then you're bored there, too. If you like where you are, and you want to stay, why not (and I know how counterintuitive this sounds versus laying in your bed and toking) volunteer for a project, and try to get ahead? You may find your job is more interesting so you'd be less inclined to reach for the bong. Or you'd just be too busy.
I think a lot of this is time and money management. Right now, it feels easy for life to be and stay this way. But you have the power to make it easier to be another way.