[면접준비] Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요. (24/04/08)
2024. 4. 8. 09:52ㆍ공부/면접 준비
Array
- 정의
- 고정된 크기의 연속적인 메모리 공간에 원소들을 저장하는 자료구조
- 특징
- 고정된 크기 : 생성시 크기가 정해지며, 이후에 크기를 동적으로 변경하기는 어렵다.
- 인덱싱 : 인덱스를 사용해 접근, 접근에 O(1)시간이 걸림.
- 메모리 사용 : 연속적인 메모리 공간을 사용하므로 메모리 관리에 용이함.
LinkedList
- 정의
- 노드들의 집함. 각 노드는 데이터와 데이터를 가리키는 포인터로 구성되어 있음.
- 특징
- 동적 크기 : 크기를 동적으로 변경할 수 있기 때문에 노드를 추가하거나 삭제하면서 크기 조절 가능.
- 포인터 : 링크드 리스트에서 각 노드들은 다음 노드를 가리키는 포인터를 포함하고 있다.
- 메모리 사용 : 비연속적인 메모리 공간을 사용한다.
답변
Array와 LinkedList는 데이터를 저장하는 자료구조 입니다.
배열(array)는 고정된 크기의 연속적인 메모리 공간을 사용하는 자료구조로,
O(1)시간에 인덱싱으로 원소에 접근합니다. 중간 원소 추가와 삭제에는 O(n)시간이 걸립니다.
연결 리스트(LinkedList)는 노드들의 집합으로, 노드는 데이터와 다음 노드를 가리키는 포인터로 구성되어 있습니다.
크기를 동적으로 조절할 수 있으며, 원소 조회에 O(n)시간이 걸리고 추가 삭제에 걸리는 시간은 위치에 따라 달라집니다.
원소를 자주 추가/삭제 할 경우 링크드 리스트가, 원소에 빠르게 접근해야 할 경우 배열이 더욱 적절합니다.
따라서, 상황에 맞게 적합한 구조를 선택하여 사용해야 합니다.
'공부 > 면접 준비' 카테고리의 다른 글
[면접준비] 자료구조 (24/04/15) (0) | 2024.04.15 |
---|---|
[면접준비] 정렬 알고리즘을 설명해 주세요. (24/04/11) (0) | 2024.04.11 |
[면접준비] NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. (24/04/08) (2) | 2024.04.08 |
[면접준비] 클래스형과 함수형의 차이를 설명해주세요. 어떤 방식을 주로 사용하였고 그 이유가 뭔지 답변해주세요. (24/04/05) (0) | 2024.04.05 |
[면접준비] 객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요? (24/04/05) (0) | 2024.04.05 |