#취준일기_240718
🌱 Today I Learned… CS 기본지식과 볼 때마다 헷갈리는 자료구조 머릿 속에서 뱅글뱅글 돌기만 하고 좀 처럼 입밖으로 나오지 않는다. 되새김질 하듯 자주 보자.
1. 배열(Array)과 리스트(List)
__배열__은 데이터를 __연속적인 메모리 공간__에 순차적으로 저장하는 자료구조로, 크기가 고정되어 있는 것이 특징이다. index를 사용해 특정 요소를 찾고 조작하는 것이 가능하며, 배열 선언 시 크기를 지정해야 한다. __리스트__는 배열과 비교했을 때, __가변적인 크기의 저장공간__을 갖고 있어 __데이터의 삽입과 삭제가 자유롭다__는 것이 특징이다.
✏️   배열과 리스트의 차이점
-
메모리 할당: 배열은 연속적인 메모리 공간에 할당되고, 리스트는 비연속적인 메모리 공간에 할당된다.
-
크기: 배열은 크기가 고정되어 있으며, 리스트는 가변적이다.
-
접근 방법: 배열은 인덱스를 통한 빠른 접근이 가능하지만, 리스트는 순차적으로 접근해야 한다.
-
삽입과 삭제: 배열은 삽입과 삭제가 번거롭고 시간이 오래 걸리지만, 리스트는 삽입과 삭제가 빠르다.
2. Map, Hash, Set
Map : 키와 데이터를 같이 저장
- Key(키)랑 Value(값)의 쌍으로 데이터 관리, 순서가 없고, 키에 대한 중복이 불가함
- Key의 검색 속도가 검색 속도를 좌우
Set : 순서가 없는 데이터의 집합. 데이터(값)의 중복을 허용하지 않음
- 순서가 없고, 중복을 허용하지 않는다.
- 중복저장이 불가하기 때문에 동일한 값을 여러번 삽입해도 하나의 값만 저장할 수 있다.
- null을 허용하지만 중복저장이 불가하기 때문에 한 번만 저장할 수 있다.
- 단순 집합의 개념으로 입력 순서를 유지하지 않기 때문에 정렬하려면 별도의 처리가 필요하다.
Hash : 임의의 데이터를 고정된 길이의 값으로 리턴해주는 함수
- 입력받은 데이터를 해시 값으로 출력시키는 알고리즘.
- cf. 단방향 암호화 기법:암호화는 수행하지만 복호화는 불가능한 암호화 기법
- 출력된 해시 값은 알고리즘에 따라 다양한 결과를 나타내기 때문에 목적에 맞게 다양하게 설계해 활용할 수 있다.
- 해시함수를 사용하여 키를 해시값으로 매핑하고, 이 해시값을 색인(Index) 혹은 주소 삼아 데이터의 값(value)을 키와 함께 저장하는 자료구조를 해시 테이블(Hash Table) 혹은 해시맵(Hash Map) 이라고 한다.
Leave a comment