ABOUT
home
무료 콘텐츠
home

코딩테스트 TIP

1. 개발자 취업 절차

개발자 취업은 통상 다음과 같은 절차로 진행됩니다.
서류 제출 → 코딩 테스트 → 기술면접 → 임원면접
회사에 따라 코딩테스트의 유형이 다양합니다.
코딩테스트 : 규모가 작은 회사 또는 경력이직
실무과제형 코딩테스트: 스타트업, 상시채용, 경력이직
여러 회사들이 실험적으로 도입하고 있습니다. 웹개발자 채용의 경우 정해진 기간동안 주어진 명세에 따라 웹 개발을 완료하면 됩니다.
알고리즘 코딩테스트 : 대기업, 대규모 채용, 신입, 1~3년차 이직 많은 IT회사에서 알고리즘 코딩테스트를 봅니다. 특히 카카오, 네이버, 라인, 쿠팡, 삼성, SK 등등 개발자들이 가고싶어하는 높은 연봉의 IT 기업에서는 거의 필수로 봅니다. 따라서 알고리즘 코딩테스트를 준비해 둔다면 지원할 수 있는 회사의 폭이 굉장히 넓어집니다.

2. 코딩테스트 개론

코딩테스트 한눈에 알아보기
코딩테스트의 목적 : 구현능력과 문제 해결능력이다.
구현능력 : 기본적인 언어 문법, 자료구조, 알고리즘, 문자열 다루는 능력
문제 해결 능력: 문제를 제대로 이해하는 것 - 수학문제랑 비슷
자주 나오는 자료구조/알고리즘을 중점으로 공부하자
시간복잡도 가장 중요
자료구조 (Stack, Queue, Hashmap, Graph, Tree)
알고리즘 (DFS, BFS, backtracking, DP, 순열조합)
대규모 채용 상황에서 최악의 개발자를 뽑는 것을 방지할 수 있다.
복잡한 알고리즘이 아닌, 필수적인 자료구조와 알고리즘을 활용할 수 있는지를 판단
자주 나오는 자료구조와 알고리즘 위주로 공부.
코딩테스트는 1등이 아니라 pass가 목표다.
코딩테스트는 복잡한 알고리즘을 알고 있는지 테스트 하는 목적이 아니다. 그러면 코딩테스트의 목적은 무엇일까? 그건 바로 구현능력(기본적인 언어 문법, 자료구조, 알고리즘)과 문제 해결능력을 보기 위함이다. 코딩테스트를 합격했다는 것은 기본적으로 언어를 구사할 수 있고 필수적인 자료구조와 알고리즘을 알고있다는 것을 보장을 해준다. 또한 이를 알고만 있는데 그치지 않고, 여러 문제상황이 생겼을 때 해결할 수 있는 사고능력이 있다는 것을 보여준다. 따라서 모든 알고리즘과 자료구조를 알 필요가 없는 것이다. 필수적인 자료구조와 알고리즘을 위주로 학습하는 것으로 충분하다. 중요한건 어떻게 적용하여 문제를 해결해나가는지가 중요하다.
그렇다면 어떤 자료구조와 알고리즘을 필수적으로 알아야 할까?
일단 시간복잡도를 계산하는 방법을 아는 것이 가장 중요하다. 문제를 해결하기 위해서 다양한 자료구조와 알고리즘을 적용할 수 있는데, 효율적인 해결 방법을 결정하는 능력이 바로 시간복잡도를 계산할 줄 아는 것에서부터 나온다.
시간복잡도를 잘 이해했다면 다음은 자료구조를 공부할 차례다. 자료구조의 경우 Stack, Queue, Hashmap, Graph, Tree 에 대해서 제대로 공부를 해야한다. 알고리즘 코딩테스트라고 불리지만 결국 자료구조를 잘 이해해야 알고리즘을 자유자재로 다룰 수 있게 된다. 자료구조의 원리를 깊게 이해를 하는 것과 코드로 구현하는 것은 또 다르다. Tree를 혼자서 만들 수 있도록 나의 프로그래밍 언어로 연습을 해보자. 데이터가 주어졌을 때, Graph를 구성해보자. 이게 가능하다면 자료구조에 대한 공부는 이걸로 충분하다.
필수 알고리즘을 살펴보면 DFS, BFS, backtracking, DP, 순열조합 정도가 필수 알고리즘이라고 할 수있다. 즉 이를 통틀어서 재귀와 완전탐색에 대한 충분한 이해가 가장 중요한 것이다. 위의 알고리즘들은 모두 재귀와 완전탐색에서 확장한 것에 불과하다. 하나 하나의 알고리즘을 익히기 전에 전체적인 숲을 공부하자. 재귀와 완전탐색을 정확히 이해하면 모든 알고리즘을 학습할 때 훨씬 수월해지고 문제에 적용할 수 있는 능력을 키울 수 있다.
이 정도만 정확히 알고 적용할 수 있다면 스타트업, 중소기업 부터 네카라쿠배 까지 합격할 수 있다. 충분하다. IT 대기업의 경우 갈수록 코딩테스트가 어려워지고 있어서 복잡한 알고리즘도 종종 나오지만, 다시 한번 기억하자. 우리는 코딩테스트 합격이 목적이지 all solve가 목적이 아니다. 모든 문제를 완벽히 풀 필요가 없다. 회사에서도 그런 엄격한 잣대를 들이대지 않는다. 왜냐하면 코딩테스트를 완벽히 잘하는 것과 실무를 잘하는 것은 차이가 있다는 점을 기업이 더 잘 알기 때문이다.
회사별 전략도 중요하다. 왜냐하면 회사의 종류가 굉장히 다양하고, 회사에서 원하는 것들이 다 다르기 때문이다. 스타트업| 중소기업, 중견기업의 경우에는 간단한 코딩테스트만 보는 경우가 많다. 내가 작은 회사에 들어가려고 준비중이라면 최소한의 코딩테스트만 준비하고 대부분의 시간과 노력을 포트폴리오에 쏟자. 코딩테스트 전반에 대한 기본 원리만 깨우치고 문제를 좀 풀어보면 충분히 대비 가능하다. 만약 네카라쿠배나 삼성 SK등의 대기업에 지원하고자 한다면 코딩테스트에 공을 많이 들여야 한다. 위에서 말한 알고리즘만 공부하더라도 합격할 수 있지만, 그 날의 컨디션과 문제 유형에 따라서 탈락을 할 가능성도 꽤 있다. 따라서 대기업을 노린다면 좀 더 어려운 문제들과 알고리즘들을 접해보면서 문제 해결능력을 키워 나가는 것이 중요하다.
정리해보자면, 가장 먼저 구현능력을 키우자. 기본적인 언어 문법이 탄탄해야 하고, 필수적인 자료구조와 알고리즘을 직접 구현해볼 수 있어야 된다. 구현능력을 키우기 위해서는 기본적인 문제를 풀어보고(그래프의 노드를 연결하는 문제, 트리를 구성하고 순회하는 문제 등) 해당 코드를 외우고 쓸 수 있을정도로 완벽하게 이해하고 암기해야 된다. 그리고 나서 재귀, 완전탐색, DFS, BFS, backtracking, DP, 순열조합을 공부하자. 이것들만 잘 알아도 왠만한 회사의 코딩테스트는 무난히 통과할 수 있다. 더 나아가 문자열 다루는 문제도 많이 풀어보면 좋다. 이렇게 맞춤으로 공부를 하면 장점이 단기간에 합격할 수 있을 정도로 실력을 끌어올릴 수 있다는 것이다. 하지만 맞춤으로 공부하라는 것이 결코 수박 겉핥기 식으로 공부를 하고 좋은 결과를 바라라는 것은 절대 아니다. 중요도 순으로 공부하면서 점점 깊이 공부를 해 나가야 한다. 필수적인 내용들을 어느 정도 익혔다면 이보다 더 어려운 알고리즘과 문제들에도 도전해보자.
일각에서는 알고리즘 테스트를 통해서 개발자를 뽑는 것에 대해서 부정적인 시각도 많다. 하지만 대규모 채용을 하는 대기업 입장에서 최고의 개발자 구분해주진 못하더라도 최악의 개발자를 뽑는 것은 걸러 준다는 의미에서 알고리즘 테스트를 도입하는 경우가 많다.
또 다른 중요한 포인트는, 코딩테스트는 알고리즘 대회와 다르다는 점이다. 알고리즘 대회에서 종종 사용되는 복잡한 알고리즘은 코딩테스트에 거의 나오지 않는다. 알고리즘을 많이 알고 있는지 테스트 하는게 아니라 필수적인 자료구조와 알고리즘을 활용해서 문제를 해결할 수 있는지를 테스트 하고 싶어한다.
이걸 이해하고 나서 공부를 시작하는 것이 중요하다. 왜냐하면 많은 서적과 강의들이 알고리즘 대회식으로 가르치고 있기 때문에 과도하게 많은 알고리즘을 학습해야 되는 상황에 놓인다. 물론 모든 알고리즘을 알고 유창하게 쓸줄 안다면 가장 좋지만, 바쁜 취업준비 시기에 모든 공부를 완벽하게 하려는 것은 불필요한 욕심이다. 코딩테스트는 1등이 아니라 PASS가 목표다. 따라서 자주 나오고 꼭 알아야 되는 알고리즘 위주로 공부하자. 그것만 하기에도 벅차다!

3. 유리한 언어 선택

코딩테스트에 유리한 언어
입사하려는 회사나 분야에 특정 언어가 강세라면 그 언어를 선택하자.
python을 가장 추천.
표준라이브러리가 강력하여 코드가 짧고 간결해진다.
문자열 처리도 좋다.
배우는데 걸리는 시간이 굉장히 짧다.
C++보다 실행속도가 느리다고 하지만, 기업용 코테에서는 실행속도보단 구현과정의 시간 단축이 훨씬 중요하다.
만약 자신이 입사하려는 회사에서 사용하는 언어가 정해져 있거나, 코딩테스트를 공부하면서 특정 언어 실력을 동시에 키우고 싶다면 해당 언어를 선택하는 것이 좋다. 만약 위와 같은 상황이 아니라면, 어떤 언어를 선택해야될 지 고민하는 경우가 많다. 코딩테스트를 20곳 정도 치른 경험을 바탕으로 어떤 언어가 어느 상황에서 유리한지 추천해보려 한다.
Python
코딩테스트 강의를 하면서 수강생들에게 가장 추천하는 언어가 바로 파이썬이다. 만약 언어 선택을 망설이고 있다면 파이썬을 선택하길 강추한다. 그 이유는 파이썬에서 지원하는 표준라이브러리가 매우 강력해서 코딩테스트를 한결 수월하게 만들어주고, 짧고 간결하게 코드를 짤 수 있다. 가장 좋은 점은 문자열 처리가 굉장히 쉽다는 것이다. C++을 사용할때는 STL 라이브러리를 사용하면서 복잡한 코드로 풀어야 하는 문제를, 파이썬에서는 내부 함수를 이용해서 한 두줄로 풀 수 있는 문제들이 종종 있다. 기업용 코딩테스트에서 파이썬이 가장 유리한 이유가 여기에 있다.
다른언어를 주력 언어로 사용하고 있더라도 시도해 볼만 하다. 본인도 C++을 주력 언어로 사용하고 있었고 파이썬은 한 번도 다룬 적이 없었다. 시험삼아 파이썬을 한 번 코딩테스트에 적용해보고자 일주일 정도만 공부해 봤는데, 그 이후로 코딩테스트에서는 파이썬만 사용하게 됐다. 그만큼 강력하다. 파이썬에 대해서 하나도 모른다 해도 시도해 볼만 하다!!
단점을 잠시 얘기해보자면 알고리즘에 따라서 C++에 비해서 실행속도가 현저히 느린 경우가 많다. 하지만 대부분의 코딩테스트에서는 이러한 실행속도 차이를 반영해서 채점하기 때문에 크게 문제되는 경우는 많지 않다. 실행속도가 느려서 틀릴 확률보단, 구현에서 시간이 오래걸리고 막혀서 틀리는 확률이 더 높으므로, 이런 단점은 장점을 생각해보면 별 문제가 되지 않으리라 생각한다.
또한 특수한 케이스이긴 하지만, 카카오 블라인드 채용의 2차 코딩테스트에서는 API를 사용해야 했는데, 이때 파이썬을 사용하면 굉장히 쉽게 해결할 수 있었다. 이는 파이썬이 가지고 있는 강력하고 다양한 라이브러리 덕분이다.
따라서 자신이 특정 언어를 잘 사용한다는 것을 어필하고 싶은 경우가 아니고(이런 상황은 스타트업의 경우 또는 경력 이직에 경우 필요할 수 있다.) 또한 특정 프로그래밍 언어를 월등히 잘하는 경우가 아니면 파이썬을 추천한다.
*파이썬 무료강의 추천! 나도코딩 or 김왼손
C/C++언어
C++은 unmanaged language라는 특성 덕분에 메모리 관점에서 컨트롤 할 수 있는 부분들이 많아서 실행시간도 빠르고, 코드를 짤 때 자유도가 높다. 이러한 장점 때문에 대부분의 알고리즘 대회에서는 많은 사람들이 C++을 사용한다. 그러다 보니 인터넷에서 참조할 수 있는 자료양이 방대해서 알고리즘을 공부할 때 도움이 많이 된다.
하지만 같은 이유로 사용하기가 더 까다롭고 어렵다. 포인터 사용시의 실수, integer overflow, 배열 인덱스 범위 초과 등의 문제를 야기하기 쉽고, 문자열의 처리가 다소 까다롭다.
C/C++을 주력 언어로 만족하며 잘 사용했던 시절이 있었다. 하지만 코딩테스트에서 원하는 수준의 실력에 도달하기 위해서 투자해야 하는 시간이 파이썬에 비해 훨씬 길었다. 정말 C++에 자신 있거나, 입사하려는 회사에서 C++만 지원하는 경우에만 추천한다.
JAVA
자바는 코딩테스트에서 별다른 이점이 없는 언어이다. 취업단계에서 자바만 사용할 수 있는 취업준비생 개발자들이 종종 있다. 지원하고자 하는 회사에서도 자바를 원하고, 가장 잘 아는 언어도 자바라면 그대로 사용해도 좋다. 하지만 다시 강조하고 싶은 내용은, 시간적 여유가 조금 있다면 꼭 파이썬을 시도해보길 바란다. 배우는데 시간이 많이 들지 않아서 도전할 만하다. 물론 자바를 코딩테스트에서 사용하면서 자바 언어 자체의 숙련도를 늘리고싶다면 나쁘지 않은 선택인 것 같다.
기타 언어
javascript, kotlin를 비롯하여 다양한 언어들은 각자의 사정에 부합할 때만 쓰길 바란다.
지원하는 회사에서 해당 언어를 정해줬을 경우
코딩테스트를 공부하면서 해당 언어의 실력도 증진하고 싶은 경우
등등의 개인사정
SQL
최근에 몇몇 회사의 코딩테스트에는 SQL 문제도 한두문제씩 나오기도 한다. 지원하려는 회사에서 SQL 문제를 포함한 코딩테스트를 보는지 시험전에 대부분 공지를 하기 때문에 확인하고 나서 공부를 해도 된다. SQL 문제가 어떻게 나오고 공부를 어떻게 해야될지 감이 잘 안온다면 프로그래머스 사이트의 SQL고득점 KIT 에서 문제를 풀어보길 추천한다.

4. 코딩테스트 효율적인 공부방법

코딩테스트 효율적인 공부방법
면접과 코딩테스트에서 필요한 것은 다르다.
정렬을 구현할 수 있는 능력은 거의 필요없다. 언제 정렬을 써야 하는지 판단하는 능력이 필요
해시테이블 collision 해결방법은 면접에서나 필요하다. 해시테이블을 언제 써야 이득인지 판단할줄 알아야 한다.
복잡한 알고리즘을 이해하려고 시간 쏟는 것 보단, 간단하지만 핵심적인 알고리즘들을 제대로 이해하고 이를 문제에 활용할 수 있는 능력을 키우자.
구현능력이 중요 ⇒ 주력 언어 체화
문제 풀이 : 이론만큼 중요한 실전.
효율은 초반에나 중요한 것
효율적인 공부방법으로 일정 궤도에 올라섰다면 비효율적인 공부를 하자.
복잡하고 어려운 알고리즘도 공부하고 이해하기
문제를 많이 풀고 스터디를 꼭 하자
1.
자료구조 & 알고리즘 대학교에서 배우는 자료구조과 알고리즘, 그리고 시중에 있는 서적이나 강의를 듣고나서 코딩테스트 문제를 풀어보시면 상당한 괴리감이 느껴질 것입니다. 면접에서 물어볼만한 것들과 코딩테스트에서 나올만한 내용이랑 차이가 있기 때문입니다.
예를 들면 면접에서는 Sorting에 대한 부분들이 많이 나오지만 코딩테스트에서는 정렬 구현 능력이 전혀 필요 없습니다. 언어에 내장되어있는 정렬 함수를 사용하면 됩니다. 또한 해시테이블의 collision에 대한 대처 방법들을 면접에서는 굉장히 중요하게 다룹니다. 하지만 코딩테스트에서는 어떤 상황에서 해시테이블을 사용하면 시간복잡도를 줄일 수 있는지를 판별하는 능력이 중요합니다. 언어별로 해시테이블은 이미 깔끔하게 정의 되어 있기 때문에 구현할 필요가 없기 때문입니다.
알고리즘 코딩테스트의 목적은 어렵고 복잡한 알고리즘을 많이 알고 있는지 물어보는 것이 아닙니다. 간단하지만 핵심적인 알고리즘들을 제대로 이해하고 있고, 문제를 잘 해석하여 상황에 맞는 알고리즘을 제대로 사용할 줄 아는지를 평가하는게 주된 목표입니다.
이론과 실전의 괴리
자료구조의 직접적인 구현보단, 주어진 문제에 적합한 자료구조를 선택하는 능력이 필요하다.
언어별로 잘 정의된 함수를 잘 사용해야 한다. ex) 정렬 알고리즘 종류별로 구현을 못해도 된다. 잘 정의된 정렬함수를 이용할 줄만 알면 된다.
굉장히 복잡한 알고리즘을 묻는 문제는 별로 없다. 나온다고 해도, 그 문제를 못풀어도 합격할 수 있다.
시간복잡도, 문자열처리, 구현 능력등이 생각보다 훨씬 중요하다.
재귀에 대한 이해가 큰 차이를 만든다.
2.
프로그래밍 언어 숙련 코딩테스트는 결국 구현을 제대로 해야 합격을 할 수 있습니다. 머릿속에 아무리 좋은 알고리즘이 떠올라도 그것을 구현하지 못하면 꽝입니다. 코딩테스트에서 사용할 주력 언어를 선택하고 문법에 익숙해져야 합니다. 하지만 특정 프로그래밍 언어를 먼저 마스터하고 넘어가야겠다는 생각은 버려야 합니다. 반복문과 조건문, 변수선언 등 기본적인 문법만 익힌 후 자료구조와 알고리즘을 익히면서, 그리고 문제를 풀면서 언어에 대한 숙련도를 쌓아가도 충분합니다.
언어선택 가이드
코딩테스트 문제를 잘 풀기 위해서는 기본적으로 코드 구현력이 필요합니다. 코드 구현력이란 내가 생각한 알고리즘을 코드로 구현할 수 있는 능력을 말합니다. 따라서 가장 자신 있는 언어를 선택하는 것이 좋습니다. 만약 특출나게 자신있는 언어가 없다면 학습기간이 짧으면서 코딩테스트에 유리한 python을 추천합니다. Python과 C++의 다양한 라이브러리는 코딩테스트 문제를 풀 때 강력한 도구가 됩니다.
3.
문제 풀기
수학 이론을 완벽히 이해한 것 같아 보여도 막상 문제를 풀어보면 틀렸던 경험들이 있을겁니다. 운동도 이론을 제대로 알고 있어도 실제로 해보지 않으면 근육을 제대로 쓸 수 없습니다. 코딩테스트도 동일합니다. 이론을 제대로 익혀도 문제를 많이 풀어봐야 실력이 늘어납니다.
그렇다고 무턱대고 문제부터 푸는 행동은 시간을 낭비하는 지름길 입니다. 효율적으로 실력이 늘기 위해서는 제대로 배운 이론을 바탕으로 문제를 풀면서 틀려도 보고 실수도 하면서 적용해보는 과정이 필수적입니다.
본 강의에서 몇몇 문제를 같이 해결해 볼 것입니다. 코드를 작성하지 않고, 어떤식으로 문제를 해결해나갈지 아이디어를 떠올리는 과정을 알려드릴 것입니다. 하지만 절대적인 숫자가 부족합니다. 강의에서 배운 내용들을 가지고 leetcode, programmers 등에 가서 직접 문제를 풀어보길 추천합니다.
문제풀기 좋은 사이트
삼성 코딩테스트 기출 백준 삼성 SW 역량 테스트 기출 문제
알고리즘 별로 연습하기 좋은 문제 모음 프로그래머스 코딩테스트 고득점 Kit
해외 유명한 문제 연습 Leetcode

5. 강추하는 사이트

코딩테스트를 학습하고 문제를 푸는 사이트들이 많지만, 직접 사용했던 사이트 위주로 용도별로 설명하고자 한다. 국내에서 어떤 회사를 지원하든 밑에 사이트들로 충분히 커버 가능하기 때문에 상황에 따라 적절히 이용하면 좋을 것 같다.
1.
취업준비 기간동안 가장 애용했던 사이트는 프로그래머스이다. 프로그래머스의 장점은 다음과 같다
수록되어 있는 문제들이 최신 코딩테스트 유형들을 가장 잘 반영하고 있다.
카카오 공채 코딩테스트를 비롯하여 많은 회사의 코딩테스트가 프로그래머스에서 진행된다.
코딩테스트를 학습하기에 좋은 문제kit가 있어서 알고리즘별 학습이 가능하다.
채용연계가 잘되어 있어서 문제 풀었던 기록을 기업 지원시 활용할 수 있다.
채용에 있어서도 잘 되어있고, 수록되어있는 문제랑 채점 시스템, 그리고 깔끔한 UI등 모든게 완벽한 사이트였다. 도움을 굉장히 많이 받아서 꼭꼭 추천하고 싶은 사이트이다.
*코딩테스트 고득점Kit와 SQL 고득점Kit는 유형별로 잘 정리되어있어서 공부하는 과정에서 굉장히 도움이 된다.
*문제유형이 코딩테스트와 유사해서 level2,3의 문제만 풀더라도 충분하다. 물론 대기업 코딩테스트는 좀 더 어렵게 나와서 level 4까지도 능숙하게 풀어야한다.
2.
해외에서 가장 유명한 알고리즘 사이트중에 하나이다. 미국의 IT대기업들이 채용시에 leetcode의 문제를 많이 활용한다고 알려져 있고, premium가입시 기출문제도 받아볼 수 있다. 하지만 이 사이트를 애용했던 가장 큰 이유는 문제의 질이 좋다는 것과, 코드 수행속도를 측정하여 다른사람과 비교할 수 있다는 점이였다. 다른사람들의 상세한 풀이도 볼 수 있는데, 이게 도움이 많이 된다. 한문제를 풀더라도 여러 사람의 풀이를 볼 수 있다면 효과는 배가 된다. 질좋은 다양한 문제를 풀어보고 싶다면 leetcode 사이트를 강력 추천한다.
*Top 100 Liked Questions를 선택하면 훌륭한 문제들을 우선적으로 풀 수 이다.
*문제풀이에 따른 실행속도를 볼 수 있어서, 나의 풀이가 얼마나 효율적인지 가늠할 수 있다.
3.
삼성에서 운영하는 사이트로, 삼성을 지원하여 sw역량테스트를 보는 사람은 꼭 들어가서 문제를 풀어보길 추천한다. 삼성스타일의 문제를 엿볼 수 있고, 실제 시험 환경과 유사하다. 삼성 역량테스트A형을 준비한다면 난이도 3,4의 문제를 풀면 된다.
코로나 이전에는 이 사이트를 통해서 상시 SW역량테스트를 지원해서 테스트를 볼 수 있었고, 상시 테스트에서 얻은 등급으로 취업시에 혜택도 볼 수 있었다. 현재는 상시테스트를 볼 수 없는 상태이다.
공부용으로도 이 사이트를 활용할 수 있는데, LEARN 탭의 Visual Reference Code를 클릭하면 다양한 자료구조와 알고리즘의 코드 구현과 시각자료를 보여준다. 가끔 햇갈리는 자료구조나 알고리즘이 있을 때 해당 페이지를 참고했는데 도움이 많이 됐다.
*삼성 역량테스트A형을 준비한다면 난이도 3,4의 문제를 풀면 된다.
*자료구조와 알고리즘을 시각적으로 공부할 수 있는 자료다.
4.
백준은 많은 사람들이 알고있는 대표적인 문제은행 사이트이다. 초반에는 알고리즘 문제를 풀기 위해 많이 사용했지만, 몇몇 단점때문에 점점 사용하지 않게 됐다.
가장 큰 단점은 풀이를 제출하고 문제가 틀렸을 때, 원인을 추적하기가 너무 어려웠다. 또한 문제가 너무 많아서 초보자 입장에서는 어떤 문제를 먼저 풀어야 좋을지 선정하기가 너무 어려웠다. 코딩테스트까지 시간이 몇년 남았다면 다양하고 폭넓게 문제를 풀면서 실력을 증진해도 좋지만, 대부분 시간이 부족해서 영양가 있는 문제를 먼저 풀고 싶어할 것이다. 따라서 백준 사이트는 특정 상황을 제외하고는 크게 추천하지 않는다.
백준 사이트에서 좋았던 점은 삼성 기출문제를 보기 쉽게 모아놓은 것이었다.(삼성sw 역량테스트 기출). 또한 특정 알고리즘을 학습한 후, 해당 알고리즘에 해당하는 문제를 다수 풀어보고 싶을 때 종종 사용했다.
*알고리즘분류에 들어가서 원하는 알고리즘 문제들을 마음껏 풀 수 있다.

︎ 뒤로 가기