백준 골드 달성 후기

이강현·2023년 12월 3일
post-thumbnail

알고리즘을 시작하다


코드업만 풀던 나에게 갑자기 어떤 한 친구가 찾아와서 말한다.

그런 잼민이 같은 거 왜 품 ㅋㅋ

그 친구는 나에게 백준을 알려주었고, c랑 python밖에 모르던 나에게 kotlin이라는 신의 언어를 알려주었다.

왜 백준을 풀어야 하는가?

프로그래머가 알고리즘 공부를 해야 하는 이유는 다양하겠지만 무엇보다 프로그래머에게는 문제 해결 능력이 중요하기 때문이다. 프로그래머는 문제 상황이 주어졌을 때 가장 효율적으로 문제를 해결할 수 있어야 한다.

특히 백엔드 개발자에게 알고리즘은 더욱 중요하다! 문제 해결적인 측면 뿐만이 아니라 알고리즘을 좀 더 효율적으로 짜게 되면 회사에게 돈이 💰 벌린다.

알고리즘은 게임 개발 및 인공지능 분야와 같은 실전에도 쓰인다.
이런 알고리즘들을 도대체 언제 쓰냐 할 수 있는데 결국 깊게 파다보면 나오는 게 알고리즘, 자료구조 뭐 이런 것들이다. 따라서 훌륭한 프로그래머가 되기 위해서는 알고리즘 공부를 필수적으로 해야 한다.

백준에서는 무려 약 3만 개의 다양한 범위와 다양한 난이도의 문제를 풀 수 있다.
따라서 한국에서 알고리즘 능력을 기르기 위해서는 백준 문제를 푸는 것은 필수라 할 수 있다.

푼 기간

3월 13일부터 6월 14일까지 3개월 정도 풀었다.

푼 언어

초반에는 kotlin으로 풀다가 python으로 갈아탔다.
이유는 굳이 알고리즘에서 kotlin을 쓸 이유가 없다고 느꼈기 때문이다.

하지만! 나중에 Android 앱이나 Spring으로 서버 개발을 하게 된다면 다시 kotlin으로 문제를 푸는 것도 고려해 봐야곘다.

단계 별로 정복하기

처음에는 진짜 뭘 풀지 몰랐었다.
코드업이랑 다르게 브론즈 문제도 난이도가 상당했고, 주변에 백준을 푸는 친구도 없었다.

그래서 일단 '단계 별로 풀어보기'에서 하루에 5~7문제 정도 풀기 시작했다.

'단계 별로 풀어보기'를 하면서 브론즈, 실버 문제를 어느정도 풀 수 있게 되었다.
또, 이 때 진짜 백준에 중독됐었다... 하루에 문제를 37개 푸는 날도 있었다.

문제집 정복하기

이 때부터 좀 알고리즘에 대한 감각이 생기고 다양한 문제 풀기 기법에 도전해본다.
DFS, BFS나 그리디 알고리즘, 동적 계획법 등을 공부하였다.

그 중 DFS, BFS 문제가 가장 재미있었다.

골드 달성!


이야! 나이스!
골드다

마무리

꾸준히 해서 루비까지 가야겠다.
또, 다른 언어 (ex. C++, swift) 등으로도 문제를 풀어봐야겠다.

아래는 나의 백준 github repository이다.
https://github.com/bestswlkh0310/baekjoon-kotlin
https://github.com/bestswlkh0310/baekjoon-python

0개의 댓글