[PYTHON] AtCoder's greenery was far away

Introduction

It turned green in AtCoder.

image.png You can find the color level feeling that the president of AtCoder gives on this site. http://chokudai.hatenablog.com/entry/2019/02/11/155904  This feeling is different for each person, but in general, it takes a year to turn green, which is slower.

It's a milestone for me, so I drew this article to keep it in shape while it feels good. In particular, I would like to convey my feelings to those who know AtCoder but are worried about getting started ** and those who have a hard time getting green **. Also, personally, I will list the same color-changing articles that were particularly helpful. Please note that this is the second decoction of these articles. https://yosen.hatenablog.com/entry/2020/08/23/032208 https://qiita.com/nayuta9999/items/c97b835b31b07eac3a14 https://qiita.com/Kota-Y/items/396ab3c57830dad65cfb#comments https://note.com/kirimin_chan/n/n889ec80b6fbc

To briefly introduce myself, I am a third-year student attending the Faculty of Information Science. I rarely found programming interesting after I entered college and until I started AtCoder. The language used was Python. For the amount of devotion (study), I used a very convenient site called AtCoder Problems. I will post a little as an index.

image.png image.png image.png image.png

Good to start AtCoder

AtCoder is grateful to my friends in the same department for teaching me and now I'm enthusiastic about it. I will write what I felt good to start.

Motivated me to learn algorithms and languages

During my first and second year of college, I spent only the perspective of "what can I learn from this?", So of course I was passively programming for credits in college classes. However, when I saw the green AC that I suffered and suffered during the contest and the brain juice overflowed, I wanted to accumulate mysterious knowledge for this moment. It's similar to a sports game. Therefore, when I got the necessary knowledge to solve past questions, I was motivated to study, which clearly improved the efficiency of studying. At that time, I wrote only Prosessing and C language, but I started studying Python and studying algorithms to "raise the rate of AtCoder".

I learned and competed with my friends

I competed with people from the same university. It feels like I'm playing an online game once a week, so I got really hot. In competing, it was also an opportunity to build a good relationship by having them explain and teach when there was something they did not understand. I feel that I was very blessed with the surrounding environment. In the above, it is written that I started studying algorithms, but basically, I was kindly taught at the gatherings where my friends and study sessions were held. Also, since I started twitter, the amount of information has increased much by seeing the consideration and solution of the strong one. It was also an opportunity for me to raise my fighting spirit, such as "I want to catch up with this person."

I gained confidence

Well, even if I'm confident, it's more than before I started AtCoder, so I'm not told if I'm confident. I think it would be sweet if I was satisfied with the fact that it turned green, but it was so far away from me that I could praise myself once. But if I didn't start with AtCoder recommended, I wouldn't know or write python in the first place, what is an algorithm? is it delicious? I think it was in a state (without material). From that point of view, I'm glad I started AtCoder once I was praised for myself.

Existence of A and B problems

I think this is one of the reasons why I can enjoy AtCoder. Competitive programming is a play that geniuses do! Overturning the image, I can participate by preparing a problem that even I, an ordinary person, can solve! I feel that he gave me the human rights. Even if you are just starting programming, there are problems that can be solved with only standard input and output, so I feel that it is really good that a wide range of people can participate happily.

What I did to get green

Algorithm knowledge you have

--bit full search --Cumulative sum --Measuring method --imos method

It's roughly this. You can use it to some extent up to the priority queue, but from the binary search, the percentage that can be solved during the contest is not about 30%.

Solve past questions and write commentary

Anyway, I solved a lot. On top of that, when I finished solving difficult problems, I was conscious of writing explanations in my own code. It's annoying, but it's often helpful to be able to organize your thoughts later. If you can get used to the concept of computational complexity and the problem of getting caught, you will have some time to spare even during the contest, so I think it will take some time to feel it.

Participation in the weekly contest

I participated in the contest almost every week for a long time when I had prioritized play over play when planning Saturdays and Sundays. When you are afraid that the rate will drop or you are not motivated, you should basically get out even if you are not devoting yourself at all. It's normal to go down during difficult times. It is rare to go up when there is no normal mentality. However, I think it is useless to give up the chance to raise the rate and get new knowledge. Even if you just enter the contest, it will continue to some extent, so I recommend it in that respect as well.

Be sure to check the input example

During the contest, I tried to solve it quickly and neglected to confirm simple problems, increasing unnecessary penalties. Even if the confirmation is a little late, it will take about 1 minute at most. When I felt something different, I made an example and an answer myself. At first, if there was an input example, it was issued immediately, but it will still be WA, so if there are many conditional branches or the amount of calculation is ambiguous, it is rather more efficient to check a lot without issuing it immediately.

Why it took a year (I felt that I should be aware of it to become green)

It is my personal opinion that I would like you to be aware of these points as well as your own reflection points.

The output is sweet

You can now learn the algorithm and solve one question! !! !! It ’s a story that I should n’t be able to do that. Since I often do this, it is a negligence around here that BFS and DFS cannot be implemented stably. Even if you solve a problem once, you will not be able to solve it unexpectedly, so if you are aware of it and work on it again, or if you work on a similar problem using AtCoder Tags, you will get more power. ..

Postpone problems that could not be solved during the contest

When I couldn't solve the D and E problems in the contest, I said, "I knew that I would use DP" and "I knew that I would use breadth-first search." Absent. Be honest. I know the best, but I still can't take action. After the contest was over, I was neglecting it even though it was the most growing moment when I could learn the problems that I couldn't think about and implement for hours. I've been taught many times that even if I understand the idea, it doesn't make sense if I can't implement it, but I'm convinced that it takes time because I'm spoiled.

I made the green wall inside me too big

I felt a lot of pressure when I had a chance to become green. Each person has different wall standards, but if the desire to cross the wall becomes too strong, it can also be a cross that afflicts oneself. It's great to set a goal and work towards it, but if you get impatient there, you hate yourself, so even if you don't get results, you can praise yourself and run away. ..

The surrounding level is high

I can't return anything if I'm told that this is a lack of effort, but the people doing AtCoder are basically insanely smart and insanely trying. There are too many smart people on twitter. Therefore, even those who do not get a high rate will be depressed if they do not compromise to some extent. It's very important to think that it can't be helped, so I want people who are having a hard time to think "I'm awesome fighting awesome guys" without thinking too much.

I don't look at the problem statement

I have a personality that I can't keep calm when I can't solve it, so I often uselessly lowered my performance and caused trouble to others. It is wrong even though it is absolutely implemented. If such a situation occurs, take a deep breath and calm down, and then try to carefully look at what is written in the problem statement and the range of restrictions, etc., and you will notice the error sooner.

at the end

Thank you for reading until the end. Again, I'm glad I did AtCoder. Thank you again to AtCoder for giving me the opportunity to study, the useful sites that supported it, my friends and people who helped me.

Recommended Posts

AtCoder's greenery was far away