코딩 테스트란?
- 문제해결 능력 역량을 평가하는 기업의 테스트
- 채점 시스템을 통해서 지원자 수 감소시키기 위한 걸름막
=지원자의 역량을 평가하고, 응시자 수를 감소 시키기 위해 웬만한 대기업들은 모두 코딩테스트를 보고있음
코딩 테스트에 필요한 역량 3가지
- 배경지식
=다양한 알고리즘, 자료구조, 기타 테크닉 등과 같이 문제를 해결하기 위해 필요한 지식
*언어의 문법,연습문제
2 .문제해결능력
=배경지식을 지금 당면한 문제에 맞게 잘 번형해서 적용시키는 능력
- 문제가 변형되어 있어도, 이 문제에서 필요로 하는 알고리즘이 무엇인가를 찾아야 하며
많은 연습문제를 통해 노력해야함
- 구현력
=본인이 생각한 풀이를 코드로 잘 옮겨낼수 있는 능력
코딩 테스트 유형
- 온라인 코딩 테스트
지원자들간 답지를 공유하지 않는한에서 인터넷 검색 허용
- 오프라인 코딩 테스트
직접 회사를 방문하여 시험장에서 치는 테스트이며 인터넷 검색을 허용하지 않는다
코딩 테스트 준비 방법(공부 방법)
- 어떤 내용을 공부 해야 하는지
- 1번에서 공부한 내용을 어떻게 적용시켜야 하는지
- 알고리즘을 연습할 수 있는 사이트에 가서 기출문제를 50문제 이상 풀어본다.
코딩테스트에 나오는 문제를 볼수 있는곳
- 국내기준: 백준 온라인 저지(국내 대기업 기출문제가 많다)
코드업: 초보자용, 알고리즘 100제
프로그래멋: 인기 대기업 코딩테스트 문제를 포함하고 있다
- 공부할때 참고사항
: 평소에 자주 쓰는 소스 코드를 잘 관리하는 습관이 필요하며, 내가 짠 코드랑 다른 사람이 짠 코드를 비교해가면서 좋은점을 습득하는것이 중요, 문제를 맞았다고 해서 그냥 넘어가지 말고, 더 나은 풀이를 얻을 수 있다
코딩테스트 최신 출제 경향
-대부분의 대기업은 알고리즘 코딩테스트 시행
-2~5시간을 주어 여러개의 정해진 알고리즘 문제들을 풀도록 함
-가장 출제 빈도가 높은 유형의 알고리즘
- 그리디(쉬운 난이도)
- 구현
- dfs/bfs를 활용한 탐색
좋은 알고리즘이란?
동일한 기능을 수행하는 알고리즘이 있다면, 일반적으로 복잡도가 낮을 수록
좋은 알고리즘
시간 복잡도: 알고리즘의 수행 시간 분석
공간 복잡도: 알고리즘의 메모리 사용량 분석
(소스 코드가 길고, 모듈을 많이 포함한다=코드가 이해하고, 보기에 복잡하다
라고 표현하지만, 여기서 복잡도란 수행능력을 의미)

<빅오 표기법을 알고리즘이 수행되는 시간이 좋고 나쁨을 확인 할 수 있음>
알고리즘 문제 해결 과정
- 지문 읽기 및 컴퓨터적 사고 =온전히 이해, 어떻게 코딩을 해야할지 정리 (10분 이상)
- 요구사항(복잡도) 분석
- 문제 해결을 위한 아이디어 찾기
- 소스 코드 설계 및 코딩
일반적으로 대부분의 문제 출제자들은 핵심 아이디어를 캐치한다면,
간결하게 소스 코드를 작성 할 수 있는 형태로 문제 출제