코딩테스트 준비 - 난이도, 공부방법 총 정리
코딩테스트 준비 - 난이도, 공부방법 총 정리 — #개발자의도구들 #코딩테스트 #하루1코테 AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였...
#개발자의도구들 #코딩테스트 #하루1코테
AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다
\* 멘토님(현직 개발자 - 하이퍼 커넥트)의 조언을 바탕으로 작성된 글입니다.
코딩테스트란?
코딩 테스트는 소프트웨어를 개발하는 기업에서 신입 지원자의 개발 역량을 시험하기 위해 보는 테스트입니다.
어렵고 창의적인 문제해결을 묻는 시험이라기 보다는, 실제 업무에서 구현할법한 문제들을 내거나, 알고리즘에 대해서 묻습니다.
사람이 사용하는 자연어로 문제를 물어보며, 그에 대한 해결책을 생가하고 코드로 작성해서 내는 시험입니다.
예시문제는 이렇습니다.
| 💡 요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 <3, 6, 2, 7, 5, 1, 4>이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. |
|---|
이렇게 지문이 주어지면 코드로 작성해서 풀면됩니다.
왜 코딩 테스트를 보는가?
기업이 코딩 테스트를 보는 당연히 유추해 볼 수 있습니다.
우리가 요구한 대로 코드 작성할 수 있어?
기업은 보통 현실세계의 문제를 해결하는데 집중하기에, 연구 조직이 아닌 이상 어렵고 복잡한 알고리즘에 대해서는 물어보지 않습니다.
주어진 요구사항을 빠르고 잘 코딩할 수 있는 능력을 평가하는 것이지요.
난이도는?
다다익선이기는 하지만, 너무 깊게 파고들 필요는 없다고 합니다. 시험 시간과 문제가 정해져있는 시험이기 때문에 자주 출제되는 많은 문제들을 익혀서 시험에 통과하는 목적으로 공부하는게 좋습니다.
최상위 기준으로 solved.ac Class 4정도(5는 과함), 프로그래머스 난이도 3정도면 어디가서 코딩 잘한다고 말해도 된다고 합니다.
저는 그래서 solved.ac class 4 까지 풀어보고, 프로그래머스로 넘어갈 예정입니다. 참고로 solved.ac는 백준 문제에요.
공부방법은?
저도 몇개월간 공부하면서 공부법에 대해 많이 해맸던 것 같습니다. 문제가 정말 안풀리는데 답을 보자니 내 실력이 아닌 것 같고... 그렇다고 계속 오랫동안 붙잡고 있을 수 는 없고.. 정말 막막한 시간이 있었습니다.
최근에 공부법에 대해 다시 질문 드렸을 때, 다음과 같은 조언을 해주셨습니다.
| 1. 풀이방법에 대해 30분 정도 고민하고 모르겠으면 힌트를 얻어라. (구글링 검색, ex) 백준 #1234번) 이때 코드를 봐선 안된다. ex) BFS, DFS를 쓰면된다 정도 2. 힌트를 얻고도 30분간 모르겠으면 풀이를 봐라. 이때도 코드를 봐선 안된다. 3. 이제 구현에 힘써라. 2시간 정도 구현해보고 안되면, 정답 코드와 내 코드를 비교하고 무엇이 잘못되었는지 파악하라.(이떄 코드를 봐야함) |
|---|
핵심은 풀이방법에 대해 깊게 고민하는 것보단, 구현에 더 집중하라는 것 같습니다. 실제 풀이법을 알아도 구현을 하다보면 생각보다 시간이 오래걸리닌깐요.
시험장에서는 풀이방법이 바로 떠오르도록 많은 문제를 최대한 풀어보는게 좋을 것 같아요.
하루 1코테 도전!
현재 계속해서 하루 1코테 챌린지를 하고 있습니다. 학습시간 기준이며 하루 학습량은 대략 1~1.5시간 정도가 되겠습니다.
원래 노션에 개인적으로 노트정리를 하였지만, 혼자서 정리하는 것 보단, 함께 공유하는 것이 낫고 복습글을 작성하는게 공부효율에 좋을 것 같아 글을 계속 남겨볼 생각입니다.(못쓰면 주말에 복습하면서 작성)
취업은 아마 내년 이맘때쯤 준비할 예정인데, 가능하다면 최상위 코딩테스트 문제까지 푸는 실력까지 갖추고 싶습니다. 부족한게 많지만 꾸준히 해나가고 싶습니다
