본문 바로가기

알고리즘

(12)
[성능튜닝] 개발에서의 알고리즘 데이터 규모와 계산량 차이대상이 되는 데이터가 크면 클수록 알고리즘이나 데이터 구조 선택이 속도에 영향을 미치게됩니다. 예를 들면, 데이터 내에서 필요한 데이터를 처음부터 순차적으로 찾아가는 '선형탐색(Linear Search)'은 n건에 대해 n번의 탐색이 필요하므로 O(n)의 알고리즘입니다. '이분탐색(Binary Search)'은 n건의 데이터에서 log n번 만에 목적 데이터를 찾는 알고리즘으로, O(log n)의 알고리즘 입니다. 1,000건에 대해 최대 10번 만에 탐색이 완료됩니다. 데이터 건수가 늘어감에 따라 알고리즘 선택의 차이가 점점 커지고, 목적 데이터를 찾는 처리를 할 때 선형탐색을 사용하는 부분에서 데이터 건수가 1,000건, 100만건, 1,000만 건으로 늘어난다면 당연히 그 ..
[알고리즘] 코딩테스트 문제 대비 기술 면접 대비 문제 대비 훈련법1. 직접 풀도록 노력해야합니다. 진실로 노력해야합니다. 많은 문제들은 까다롭게 만들어졌습니다. 문제를 풀때는 공간과 시간 효율에 대해서 반드시 생각해야 합니다. 공간효율을 희생해서 시간 효율을 높일 수 있는지, 아니면 반대로 할 수 있는지 자문해 보아야 합니다.2. 알고리즘 코드를 종이에 적어봅니다. 여러분은 아마 지금껏 컴퓨터 앞에서 코딩을 해왔을 것이고, 컴퓨터가 주는 편리함에 익숙해져 있을 것입니다. 하지만 면접을 보는 동안에는 문법 강조 기능이나 코드 완성, 컴파일링 기능이 갖추어진 도구의 도움을 받을 수 없습니다. 종이에 코딩하면서 같은 상황에 대비하여야 합니다.3. 코드를 테스트해봅니다. 역시 종이 위에. 일반적인 경우뿐 아니라, 기본 조건 그리고 오류 발생 ..