thumbnail
Python Coding Interview - 1부 | 코딩 인터뷰
Coding Test / Python
2022.12.31.

파이썬 알고리즘 인터뷰 책의 1부 부분을 읽으면서 배운 내용을 정리해보았다.

1장 | 코딩 인터뷰

온라인 코딩 테스트의 사전 준비사항

연습장과 필기 도구

재귀 구조 같은 복잡한 알고리즘을 구현할 때는 연습장에 그리면서 풀면 효과적이다.

자신만의 코드 스니펫 준비

코테를 풀면서 자주 사용되는 알고리즘에 대해서는 코드 스니펫을 미리 만들어두면 도움이 된다.
깃허브 기스트 같은 코드 스니펫을 관리할 수 있는 서비스를 사용하면 된다.

모든 테스트 케이스를 통과하도록 풀어야

일부 기업의 경우 문제 제출 횟수를 평가 기준으로 삼는 경우도 있다. 즉, TDD 와는 완전히 대척적으로 공부를 해야한다.
적어도 코딩 테스트 시에는 충분히 생각하고 문제가 없는지 코드를 다시 한번 더 꼼꼼히 확인 후에 제출하는 편이 유리하다.

타임아웃이 발생하는 경우

파이썬이 C++ 나 자바보다 실행속도가 대부분 느리기 떄문에, 알고리즘 최적화 에 좀 더 많은 고민을 해야한다.

예외 처리를 잊지 말자

입력값이 0이거나 NULL로 들어올 경우를 잘 고려를 해야한다. 처음부터 상단에 예외 처리부터 해놓고 진행하는 것도 나쁘지 않다.

잘못 접근한 풀이, 어떻게 대처할까

스스로 문제당 제한 시간을 정해두고 그 시간을 초과할 경우 바로바로 다음 문제로 넘어가는 버릇을 들이자. 나중에 시간이 모자라 쉽게 풀 수 있는 문제도 놓치는 경우를 만들지 말자.

풀이 시간을 초과했을 때, 포기해야 할까

시간이 초과되어도 IDE를 사용하여 계속 이어서 문제를 푼다. 그리고 풀이가 끝나면 결과를 면접관에서 메일로 보내본다.

2장 | 프로그래밍 언어 선택

코딩테스트에 최적인 프로그래밍 언어, 파이썬

파이썬이 다른 언어에 비해 가지는 장점은 다음과 같다.

  • 면접관이 쉽게 이해할 수 있다.
  • 거의 모든 플랫폼이 파이썬을 지원한다.
  • 매번 자료형을 엄격히 선언안해도 된다. 물론 지나치게 유연하게 작성할 경우 면접관이 패널티를 줄 수 있으므로 한번 더 검토를 하여 안 쓰는 변수 등은 정리하는 습관을 들여야한다.
  • 다른 언어는 라이브러리를 사용할 수 없어서 불편하지만, 파이썬은 이미 언어 레벨에서 풍부한 기능을 내장하고 있다.