Postechian Column: My Journey of Competitive Programming
Postechian Column: My Journey of Competitive Programming
  • Lee Yu Dam (CSE 22)
  • 승인 2024.04.22 16:36
  • 댓글 0
이 기사를 공유합니다

Lee yu dam (CSE 22)
Lee yu dam (CSE 22)

  First of all, competitive programming is a mind sport in which competitive programmers solve algorithmic and computational problems within a specified time frame. In the contest, participants are given a set of problems to solve in a few hours and they must write a computer program that can solve these problems.

  My journey in competitive programming is a story of passion and earnestness. After entering POSTECH, I started on my journey in competitive programming. In my first year at POSTECH, I joined the campus club, POSTECH Computing Algorithms Team (POSCAT), where I solved many computational problems, honing my foundational skills. While achieving a commendable feat of taking third place in POSTECH Programming Contest (PPC), I also drank the bitter cup of elimination in the ICPC regional qualifiers. 

  Fueled by a determination to form a stronger team, I devoted myself even more diligently to my studies. In 2023, my efforts paid off as taking first place in PPC, received an honorable mention in the ICPC Seoul regional, and won a bronze medal at the ICPC Asia Pacific Championship held in Vietnam. Through these contests, I achieved the dream shared by competitive programmers, including myself, by becoming a 2024 ICPC World Finalist.

  To start competitive programming, you should have the ability to code for some programming languages such as C++ or Python and have knowledge of basic math. If you do not know any of the programming languages and want to compete in a programming contest, I recommend learning C++ because it operates in a fast time and uses little memory compared to other programming languages.

  In the second step, you need to learn basic algorithms and data structures and solve some fundamental problems. There are several resources to learn this. In POSTECH, you can learn this in Data Structure or Algorithm which are the courses of the Department of Computer Science and Engineering. Also, there is a Korean Online Judge called Baekjoon which is an online system to test programs for some problems.

  In the third step, you can enjoy programming competitions with people from all around the world online. Codeforces is the most popular and my favorite online platform for competitive programming. It hosts regular contests where participants can solve algorithmic and mathematical problems within a specified time limit. Through enjoying these competitions, you will spontaneously learn more advanced algorithms and techniques.

  Lastly, if you are a college student who enjoys competing and communicating with others through programming, you can participate in the ICPC. Since each team of ICPC must have three students, the first element in forming a successful team is having diverse skill sets among team members. Differences in problem-solving approaches among team members can be a significant advantage when tackling challenges. The second element is to minimize the difference in skill levels among team members. If there is a significant gap in skills, it may lead to an inefficient distribution of tasks, with one person bearing the burden of solving most problems. Although finding a team for the ICPC competition can be challenging, in POSTECH, you can easily form your ICPC teams and prepare for ICPC within the club POSCAT.