내가 코딩 테스트를 준비하는 이유
- 당장 구직하지 않더라도, 이러한 준비를 미리 해두어야 좋은 기회를 잡을 수 있다.
- 대기업이나, 누구나 가고 싶은 기업에는 코딩 테스트가 존재한다.
- 항상 서류에서 통과가 되더라도, 코딩 테스트에서 떨어지곤 했는데 이번에는 떨어지지 않고 면접까지 가는 것이 목표이다.
- 대기업 면접을 통해서 합격하지 못하더라도 내가 미쳐 생각하지 못했던 부분과, 부족한 부분을 배울 수 있는 기회로 삼고 싶은데 코딩 테스트때문에 면접까지 갈 수가 없기 때문에 배울 기회가 없다.
- 물론 코딩 테스트를 통해서 테스트 코드를 작성하는 법과 사고력을 키울 수 있을 것 같다.
코딩 테스트를 공부하는 팁
- 문제를 많이 풀고, 복기하는 방법이 실력향상에 많은 도움이 되었다.
- 복기한 내용을 깃허브에 기록으로 꼭 남기자, 이 기록은 코딩 테스트 직전에 훌륭한 요약집이 된다.
- 상대적으로 어려운 알고리즘을 만나면, 한번에 완벽하게 이해하려 하지 말고 여러 번 읽어 체화시키려고 해야한다.
- 총 3번에 걸쳐 읽고, 각 시간을 30, 20, 10 시간으로 쪼개서 점점 더 속도를 올리는 방법을 권한다.
- 나는 추가적으로 테스트 코드를 작성하면서 문제를 풀려고 한다, 테스트 코드를 작성하는 실력도 높히고 놓치는 부분이 없는지 확인할 수 있어 TDD를 적용하면서 코딩 테스트를 준비하면 좋을 것 같다.
- 시간 복잡도 분석은 문제 풀이의 핵심이다.
- 알고리즘 문제 풀이에 능숙한 숙련자들은 문제를 해석하기 전에 먼저 조건을 보기도 하는데 문제의 조건부터 확인하면 문제를 풀기 위해 얼마나 효율적인 알고리즘을 작성해야하는지 눈치챌 수 있기 때문이다.
시간과 메모리 측정
- 파이썬에서는 쉽게 프로그램 수행 시간과 메모리 사용량을 측정할 수 있다.
- 알고리즘을 공부하는 과정에서 시간을 측정하는 작업을 굉장히 많이 사용한다.
- 실질적으로 알고리즘의 소요 시간을 확인해야 자신이 제대로 알고리즘을 작성하고 있는지 체크할 수 있기 때문이다.
import time
start_time = time.time() # 측정 시작
# 프로그램 소스 코드...
end_time = time.time() # 측정 종료
print(f"time:{end_time - start_time}") # 수행 시간 출력
- 자신이 설계한 알고리즘의 성능을 실제로 확인하기 위해서, 시간 측정 라이브러리를 사용해보는 습관을 기르는 것이 좋다.
참고 문헌
이것이 취업을 위한 코딩테스트다, 나동빈, 한빛미디어
>> Home