TIL DAY.16 자료구조와 Array

Dan·2020년 8월 31일
0

자료구조(Array) 면접질문

1. 자료구조의 정의와 중요한 이유를 설명하세요.

자료구조는 데이터에 편리하게 접근하고 조작하기 위한 데이터를 저장하거나 조직하는 방법입니다. 자료구조가 중요한 이유는 데이터에 맞는 적절한 자료구조를 사용하는 것이 전체 개발 시스템에 굉장히 큰 영향을 끼치기 때문입니다.

모범답안))자료 구조란 데이터의 편리한 접근과 조작을 가능하게 하는 데이터를 저장하거나 조직하는 방법입니다. 문맥과 데이터의 종류에 따라 적절한 자료 구조를 사용하는 것은 전체 개발 시스템에 큰 영향을 끼칩니다. 그렇기 때문에 자료구조의 다양한 종류와 각각의 장점과 한계를 잘 이해하고 상황에 맞게 올바른 자료 구조를 선택하고 사용하는 것이 중요합니다.

2. Array(List)의 가장 큰 특징과 그로 인해 발생하는 장점과 단점에 대해 설명하세요.

Array의 가장 큰 특징은 순차적(ordered)으로 데이터를 저장한다는 점입니다.

장점으로는 데이터가 순차적으로 저장되기 때문에

1) index가 존재합니다: 0부터 시작하는 index

2) indexing: index를 사용해 특정 요소를 array로 부터 읽어 들이는것이 가능합니다.

3) slicing: 요소의 특정 부분, 즉 n번째 index부터 m번째 index 까지 따로 분리해 조작하는 것이 가능합니다.

단점

1)Removing or Adding Elements: 중간의 특정 요소를 삭제해야하는 경우 순차적으로 이어져 있기 때문에 삭제된 요소로 부터 뒤에 있는 모든 요소들을 앞으로 한칸씩 이동시켜주어야합니다. 그렇기에 메모리 상에서 이루어지는 작업이 훨씬 커집니다.

2)Array Resizing: 배열은 메모리가 순차적으로 채워지기 때문에 배열이 처음 생성될 때 어느 정도 메모리를 미리 할당합니다. 그리고 추가적으로 할당된 메모리를 순차적으로 할당해야하기 때문에 배열의 resizing은 상대적으로 오래걸리는 operation입니다.

모범답안))Array의 가장 큰 특징은 순차적으로 데이터를 저장한다는 점입니다. 이렇게 데이터에 순서가 있기 때문에 0부터 시작하는 index가 존재하며, index를 사용해 특정 요소를 찾고 조작이 가능하다는 것이 Array의 장점입니다. 반면에 이에 따른 단점도 존재하는데, 순차적으로 존재하는 데이터의 중간에 요소가 삽입되거나 삭제 되는 경우 그 뒤의 모든 요소들을 한칸씩 뒤로 밀거나 당겨줘야 하는 단점이 있습니다. 이러한 경우 메모리 상에서 이루어지는 작업이 다른 자료구조에 비해 커지기 때문에 Array 는 정보가 자주 삭제 되거나 추가되는 데이터를 담기에는 적절치 않습니다.

3. Array를 적용 시키면 좋을 데이터의 예를 구체적으로 들어주세요. (ex. 주식 차트) 구체적 예시와 함께 Array를 적용하면 좋은 이유, 그리고 Array를 사용하지 않으면 어떻게 되는지 함께 서술해주세요.

1)순차열적인 데이터를 저장할때 : 주식가격같이 어제의 2과 오늘의 2만원이 다른경우.

2)다차원 데이터를 다룰 때

3)어떠한 특정요소를 빠르게 읽어야할 때 :index를 통해 곧바로 읽을 수 있기 때문

4)데이터의 사이즈가 급변하지 않을 때

5)요소가 자주 삭제 되거나 추가되지 않을 때

모범답안))Array를 적용시키면 좋은 예로 주식 차트가 있습니다. 주식 차트에 대한 데이터는 요소가 중간에 새롭게 추가되거나 삭제되는 정보가 아니며, 날짜별로 주식 가격이 차례대로 저장되어야 하는 데이터입니다. 즉, 순서가 굉장히 중요한 데이터 이므로 Array 같이 순서를 보존 해주는 자료구조를 사용하는 것이 좋습니다. 이와 같은 데이터에 Array를 사용하지 않는 경우, 즉 순서가 없는 자료 구조를 사용하는 경우에는 날짜별 주식 가격을 확인하기 어려우며 매번 전체 자료를 읽어 들이고 비교해야 하는 번거로움이 발생합니다.

profile
만들고 싶은게 많은 개발자

0개의 댓글