-
기술면접을 준비할 때는 절대 문제와 답을 읽는 식으로 하지 말고, 문제를 직접 푸는 훈련을 해야합니다.
-
- 포기하지말고, 최대한 힌트를 보지말고 답을 찾자
-
- 컴퓨터를 이용하면 코드 문법 강조나, 자동완성 기능으로 도움 받을 수 있기 때문에 손으로 먼저 적는 연습하자
-
- 기본 조건, 오류 발생 조건 등을 테스트 하자.
-
- 종이로 적었을 때 실수를 많이 했을 것이다. 컴퓨터로 옮기면서 실수 목록을 적고 다음부터 저지르지 않도록 유의하자
-
-
-
- 연결리스트(Linked Lists)
- 트리, 트라이(Tries), 그래프
- 스택 & 큐
- 힙(Heaps)
- Vector / ArrayList
- 해시테이블
-
- BFS (너비 우선 탐색)
- DFS (깊이 우선 탐색)
- 이진 탐색
- 병합 정렬(Merge Sort)
- 퀵 정렬
-
- 비트 조작(Bit Manipulation)
- 메모리 (스택 vs 힙)
- 재귀
- DP (다이나믹 프로그래밍)
- big-O (시간과 공간 개념)
-
-
면접관은 우리가 문제를 어떻게 풀었는 지, 과정을 알고 싶어하기 때문에 끊임없이 설명해야합니다!
-
- 문제 설명 관련 정보는 집중해서 듣자. 중요한 부분이 있을 수 있습니다.
-
- 직접 예제를 만들어서 디버깅하고 확인하기
-
- 처음에는 최적의 알고리즘을 생각하지말고 무식하게 풀어보기
-
- BUD (병목현상, 불필요 작업, 중복 작업)을 최적화 시키며 개선하기
-
- 다시 처음부터 실수가 없는지 검토하기
-
- 모듈화된 코드 사용하기
- 에러를 검증하기
- 필요시, 다른 클래스나 구조체 사용하기
- 좋은 변수명 사용하기
-
- 개념적 테스트 - 코드 리뷰
- 특이한 코드들 확인
- 산술연산이나 NULL 노드 부분 실수 없나 확인
- 작은 크기의 테스트들 확인
-
-
또한 면접은 '상대평가'입니다. 즉, 문제가 어렵다면 다른 사람도 마찬가지이므로 너무 두려워하지 말아야합니다.
- 면접관들은 답을 평가할 때 맞춤, 틀림으로 평가하지 않기 때문에, 면접에서 모든 문제의 정답을 맞춰야 할 필요는 없습니다.
- 중요하게 여기는 부분
- 얼마나 최종 답안이 최적 해법에 근접한가
- 최종 답안을 내는데 시간이 얼마나 걸렸나
- 얼마나 힌트를 필요로 했는가
- 얼마나 코드가 깔끔한가