알고리즘 공부 시작
알고리즘 공부
최근 1년여를 경쟁과 동떨어진 삶을 살다 보니 스스로 정체되는 느낌이 들었고, 4월 말에 충동적으로 10년 가까이 사용하던 리그오브레전드 아이디를 지웠다..
그리고 무엇이든 시작하기 위해 내가 할 수 있는 일들의 목록을 정리했었는데, 크게 나눠보면 다음과 같이 3가지 옵션이 있었다.
- 1인 유니티 게임 개발
- 알고리즘 공부
- AI 공부
이 중 1번은 기획부터 완성 및 출시까지 너무 많은 시간이 걸릴 것 같아서 제외하고, 3번은 작년 tensorflow certificate 이후로 안 본 지 꽤 되어서 패스.
결국 알고리즘 공부를 다시 시작하기로 했다.
Baekjoon Online Judge & solved.ac
학부 시절 사용하던 Baekjoon Online Judge 아이디를 찾아서 로그인하고 어떤 순서로 공부를 하면 좋을지 인터넷을 뒤적이던 와중에 solved.ac 를 발견했다.
문제의 난이도를 직관적으로 보여주며
라떼는 그냥 뒤에 붙은 정답률만 보고 난이도 짐작해가며 문제 풀었는데.. 세상 너무 좋아졌다.
게임의 콜렉션이나 업적 시스템처럼 클래스를 취득하는 시스템도 생겼고
내 카테고리 별 능력치도 볼 수 있다.
그리고 모든 요소를 취합해서 최종적으로 매겨지는 나의 티어 (골드 5)
롤처럼 브론즈, 실버, 골드, 플래티넘, 다이아몬드가 있고 그 위로는 루비, 마스터가 있는 듯 하다.
계획
우선 한달정도 문제를 풀며 어떻게 공부와 포스팅을 진행해야 할 지 고민해 보았다.
시작한 직후라 그런지 티어 상승 속도가 매우 빨랐다.
문제의 난이도는 골드 중간까지는 바로 풀리거나 시간을 좀 들여서 해결하는 정도인데, 골드 1~플래티넘으로 올라가는 순간 급격히 어려웠다.
앞으로 시도하는 문제들 중 복잡하거나 어려운 개념이 필요하다면 포스팅하며 정리해보려 한다.
현재는 Segment Tree 가 그에 속하는데, 며칠 전 접한 [6549] 히스토그램에서 가장 큰 직사각형 문제에서 반드시 알아야만 시간초과를 피할 수 있는 자료구조이다.
개념 정리부터 구현, 그리고 응용 및 변형으로 해결할 수 있는 다양한 문제를 분석하는 식으로 포스팅할 것 같다