코딩테스트는 기초 알고리즘을 활용하여, 주어진 상황을 코드로 얼마나 잘 구현해낼 수 있는가가 관건
카카오나 삼성 등 가고자 하는 기업의 코딩테스트 문제들을 분석하고 반복하여 연습하는 것만이 방법
코딩테스트의 정의는 ‘주어진 시간동안 주어진 문제를 요구사항에 맞게, 프로그래밍하여 ACCEPT나 점수를 받는 시험’
문제를 받고, 문제에 서술된 상황을 바탕으로 모델링하고,
그 다음 절차적 사고에 맞춰 프로그램을 짜고 이를 코드로 구현 해야한다.
위에서 말한 3가지 역량을 제한 시간 안에 얼마나 효과적으로 보여줄 수 있는지를 확인하는 시험
👉탑코더알고리즘튜토리얼 입문 추천
👉릿코드 입문 추천
👉코드업 기초 100제
👉백준 온라인 저지 삼성
👉코드포스 블루레벨 정도의 실력까지
👉프로그래머스 카카오
👉알고스팟
👉코딩도장
👉Hackerearth
👉Hackerrank
1) 문제 모델링
문제에서 제시하는 내용을 각각의 조건으로 어떻게 나눠야 하는지 감을 잡지 못하고 어려워 하는 거죠. 이 경우 아래의 3가지를 중점적으로 연습해보세요.
2) 문제를 풀다가 계속 막히는 경우
코딩테스트를 통과하려면 많은 문제 유형을 풀어보면서 감을 익혀야 합니다. 그런데 문제 풀이 과정에서 계속 막히면 답답하죠. 문제를 풀다가 계속 막히는 것은 어쩔 수없이 경험치를 많이 쌓아야 해결되는 겁니다. 코딩테스트에 등장하는 필수 알고리즘은 무조건 암기하되, 알고리즘은 많이 알아두면 알아둘수록 도움이 될 거예요.
3) 풀이는 아는데 구현이 안 됩니다.
이런 어려움을 호소하는 학생들에게 가장 많이 하는 말은 ‘예제와 정답이 한 번에 나오길 기대하지 말자’라는 겁니다. 디버깅 연습을 부단히 해야 합니다. 개인에 따라 자체 id를 사용하거나 디버깅 툴을 활용이 어렵게 느껴질 수 있습니다. 그렇다면, print 함수를 이용해 디버깅하는 연습을 해보면 도움이 됩니다.
책을 정독하고 나만의 언어로 개념을 알 때까지 구현
나의 언어로 설명할수 있는 정도의 능력이 필요! 👉 글이나 말로 설명가능 해야 함
알고리즘은 나만의 언어와 방식으로 추상화해서 기억
문제 익힐 때 직접 코드 짜서 확인 👉 반복 숙달, 디버깅 능력
문제 유형과 풀이 세분화 👉 (예: DAG에서 최장경로 구하기, 트리의 지름 구하기 등)
‘나는 맞았는데 왜 틀렸나요?’
아래의 원인 중 내가 범한 실수가 무엇이 있는지 생각해보며 연습해보시길 추천합니다.
참고