SW엔지니어로서 면접을 준비하면서 기본적인 컴퓨터 사이언스 지식을 복습하는 의미에서 이렇게 블로그에 정리를 하고자 한다. 가장 먼저 복습할 과목은 자료구조이다. 이번 글에서는 배열, 그리고 해시테이블에 대해서 복습해 보려 한다. 먼저 배열부터 살펴보자. 배열 배열(array)은 연관된 데이터를 모아서 한 번에 관리하기 위해 사용하는 데이터 타입이다. 배열은 논리적인 저장순서와 물리적인 저장순서가 일치한다. 따라서 인덱스(index)를 사용하여 해당 원소에 접근할 수가 있다. 인덱스를 알고 있다면 각각의 원소를 바로 찾아갈 수 있게 되므로 원소를 찾는데 걸리는 시간복잡도는 O(1) 이라고 볼 수 있고, 이를 임의 접근(random access)이 가능하다고 말한다. 반면에 새로운 데이터를 삭제하거나 삽입을..