알고리즘 공부, 어디서 어떻게 시작해야할까? 작년 이맘때쯤에 처음 알고리즘 공부를 시작했었는데, 어떤 플랫폼을 써야하는지 엄청 고민했던 기억이 나서 1년동안 직접 사용해 본 다양한 코딩테스트를 비교해보고, 각 플랫폼에 대해 간단한 소개를 해보겠다.
1. 프로그래머스
프로그래머스는 다양한 스타트업 및 국내 기업들이 사용하는 코딩테스트 플랫폼이다. 대표적인 예시로 카카오가 프로그래머스를 통해 대부분의 코딩테스트를 주최하기 때문에 다양한 카카오 코테 기출들이 많이 정리돼있다. 이 외에도 프로그래머스에서 주관하는 다양한 코딩 챌린지, Summer/Winter coding 기출들도 정리되어있다.
다만 프로그래머스는 알고리즘을 유형별로 분류해놓지 않기 때문에 알고리즘 입문자들이나 유형별로의 공부를 하고 싶어하는 사람들보다는 국내 기업 코테를 앞두고 있는 사람들에게 더 적합한 것 같다. 자료구조 기초와 이론적인 개념들을 다지기보다는, 실제 코테 환경에서의 알고리즘을 푸는 것을 원하는 사람들에게 추천한다.
2. 백준
백준은 알고리즘 입문자에게 추천하는 사이트다. 그에 대한 이유로는 알고리즘이 유형별로 분리되어 있고, 그 유형 안에서도 단계별로 문제를 풀어볼 수 있다. 내가 오늘은 DP를 판다면, DP 기초부터 심화까지 코스에 따라 문제를 풀 수가 있다.
또 티어제가 있는데, 문제별로 부여되어있는 티어가 달라서 높은 티어의 문제를 풀면 나의 티어도 그만큼 올라간다. 도장깨기 하는 느낌으로 레벨업하는게 꽤 재미있다! Gold V~III 정도의 문제를 무난하게 풀 정도라면 웬만한 기업 코테는 통과한다고 한다.
또 이런 식으로 이메일 인증을 하면 학교 혹은 회사에 속해서 전체 랭킹에 기여를 할 수 있다. 안타깝게도 우리 학교는 나 포함 3명 밖에 없어서.. 꽤나 하위권이다 ㅠㅠ 이런 랭킹제와 티어제에 환장하는 나로써는 백준을 통해서 알고리즘에 본격 재미를 붙였던 것 같다. 아쉽게도 요즘은 프로그래머스에서 상주하느라 백준 문제는 많이 풀지 못하고 있다..
백준의 한가지 단점으로는, 사이트 내에서 코드를 작성할 수 있는 IDE가 없기 때문에 실제 코테 환경과는 많이 다르다. 제출하기 전에 주어지는 테스트 케이스도 없기 때문에 디버깅하기도 살짝 힘들다. 가까운 미래에 코테를 앞두고 있는 사람보다는, 평소에 알고리즘 입문자 및 자료구조 이론을 쌓고자 하는 사람들에게 추천한다!
3. Leetcode
리트코드는 해외 플랫폼으로, 영어로 알고리즘 문제를 풀 수 있다. 주로 외국계 IT 기업들(구글, 아마존 페이스북 등등)이 리트코드와 비슷한 환경에서 코딩테스트를 주관한다. 프리미엄 계정을 결제하면 기업 별로의 기출 문제들을 풀어볼 수 있다 (하지만 꽤나 비싸서 아직 결제해본 적은 없다). 테스트 케이스들이 꽤나 까다롭기 때문에 예외처리하는 습관을 들이기 좋은 플랫폼이다.
리트코드는 필자가 환장하는 잔디가 있다.. 원래 이런 잔디에 진심이기 때문에 한동안 열심히 채웠지만 역시나 요즘은 프로그래머스에서 상주하느라 잔디밭을 관리하지 못했다..
리트코드도 유형별로 알고리즘이 잘 나누어져있고, 레벨도 세개이기 때문에 골라서 푸는 재미가 있다. DP에서 Easy Level의 문제를 풀면 바로 Medium 레벨의 DP 문제를 추천해준다.
영어로 푸는 알고리즘 문제에 익숙해지고 싶은 분들, 그리고 글로벌 IT 기업 코딩 테스트를 준비하는 분들에게 추천하는 플랫폼이다. 이 외에도 코테에 자주 사용되는 해외 플랫폼에는 HackerRank, Codility 등이 있다.
4. SWEA
삼성 SW 역량 테스트 플랫폼이다. Learn 섹션에 들어가면 자료구조 유형 별로 강의가 있고, 해당 유형에 따른 예시 문제들이 있다.
강의 영상 자체는 사실 인강스럽고 옛날 스타일이지만, 동영상의 길이가 짧고 pseudocode로 개념들을 설명해주기 때문에 이해하는 것이 쉽고 기본 개념을 잡는데에 적합하다.
IDE는 삼성전자만의 독보적인 구성 방식을 따르고 있다 (다른 기업들의 코테 환경과는 많이 다르다는 뜻). 나는 어쩌다가 가장 첫 알고리즘 공부를 SWEA로 접하게 되었는데, 그래서인지 처음에 다른 플랫폼으로 넘어갔을 때 많이 헤맸었던 기억이 있다. 제출 전에 compile을 할 수 있지만 외부 IDE에서 구현하고 복붙하는 것이 편한 UI다. TestCase를 꽤 많이 제공해주기 때문에 디버깅이 익숙치 않은 사람들에게도 추천한다.
삼성전자 입사를 꿈꾸는 분들에게는 SWEA를 매우 추천 드리며 (사실 필수다) 인턴의 경우에는 D4~D5 레벨의 문제에서 코테 문제들이 출제된다고 한다. 하지만 삼성전자가 아닌 타 기업 준비용으로는 딱히 추천하지 않는다. 알고리즘 입문자들은 Learn 섹션에서 자료구조 별 강의를 들어보는 것도 도움이 될 것 같다.
이렇게 다양한 코딩테스트 플랫폼들을 알아보았다! 각양각색의 플랫폼들이 많기 때문에 현재 자신의 실력과 준비해야하는 것들을 잘 생각해보고 플랫폼을 정하면 좋을 것 같다. 그리고 한 플랫폼을 정했다고 해서 거기에서만 문제를 풀어야하는 법은 없기에 너무 고민을 크게 할 필요도 없는 것 같다. 고민할 시간에 알고리즘 하나 더 풀자(는 나에게 하는 말)!!
내일 Codility로 보는 코딩테스트가 있는데 좋은 결과 있었으면 좋겠다.. ㅠ_ㅠ 화이팅
'Insights > 국내 취업 일지' 카테고리의 다른 글
2021 네이버 NLP 기술 기발 체험형 인턴 면접 준비과정 및 후기 + 최종 합격! (0) | 2021.06.26 |
---|---|
2021 네이버 NLP 기술 개발 인턴 코딩 테스트 후기 (5) | 2021.06.07 |
프로그래머스 2021 Summer Coding 코딩테스트 후기 + 합격! (1) | 2021.05.21 |