코딩인터뷰 완전분석 - 기술 문제 대비

update : 2016-06-07

목표

  • 코딩 인터뷰의 훈련법에 대해 인지한다. 책 ‘코딩인터뷰 완전분석’에 나와 있는 내용 중 주요 내용 발췌

1. 문제 대비 훈련법

답을 외우려고 하지 말고 푸는 훈련을 하라

  • 공간과 시간 효율에 대해 생각하라. 공간 효율을 희생해서 시간 효율을 높일 수 있는지, 아니면 반대의 경우인지 생각하라.
  • 알고리즘 코드를 종이에 적어라. 면접이 IDE 환경을 갖추지 않을 수 있다. 종이에 코딩하면서 대비하라.
  • 코드를 테스트 하라. 기본 조건과 오류 발생 조건 등을 전부 테스트하라.
  • 종이에 적은 코드를 그대로 컴퓨터로 옮겨라. 실수를 목록으로 만들어 정리하여 면접장에서 저지르지 않도록 유지한다.

2. 알아야할 기본적인 것들

특수하거나 복잡한 알고리즘을 묻지 않는다. 아래는 학부생 수준에서 알아야할 기본적인 것들이다. 각 주제에 대해 사용법과 구현법, 가능하다면 공간과 시간 복잡도에 대해서 알아두자. 자료구조와 알고리즘의 경우 처음부터 구현이 가능하도록 연습한다. 구현하는 문제가 나올 수 있고, 주어진 코드를 변형하라는 문제가 나올 수도 있다.

  • 자료구조 : 연결 리스트, 이진 트리, 트라이, 스텍, 큐, Vector, ArrayList, 해쉬 테이블
  • 알고리즘 : 너비 우선 탐색, 깊이 우선 탐색, 이진 탐색, 병합 정렬, 퀵 정렬, 트리의 삽입/탐색
  • 개념 : 비트 조작, 싱글톤 디자인 패턴, 팩토리 디자인 패턴, 메모리(스텍vs힙), 재귀, O표기법

3. 2의 급수표(power of 2)

규모 확정성에 관계된 문제를 풀 때, 데이터 저장에 필요한 공간을 계산할 때 쓰인다.

  • 2^10 = 1,024 // 근사값 : 1,000(천) // 메모리 요구량 : 1K
  • 2^16 = 65,536 // 메모리 요구량 : 64K
  • 2^20 = 1,048,576 // 근사값 : 1,000,000(백만) // 메모리 요구량 : 1MB
  • 2^30 = 1,073,741,824 // 근사값 : 1,000,000,000(십억) // 메모리 요구량 : 1GB
  • 2^32 = 4,294,967,29 // 모리 요구량 : 4GB
  • 2^40 = 1,099,511,627,776 // 근사값 : 1,000,000,000,000(조) // 메모리 요구량 : 1TB

참고문헌

책 - ‘코딩 인터뷰 완전분석’