본문 바로가기
CS/자료구조

[자료구조] Map

by 개발도사(진) 2024. 3. 15.

정의

Map은 <key, value> pair를 저장하는 자료구조이다. Map은 여기에 더해 다음 두 가지 특성을 가진다.

1. key는 반드시 자연수가 아니어도 괜찮다.(non-numeric key)

2. key가 반드시 연속될 필요는 없다.(non-consecutive key)

3. value는 중복될 수 있지만, key는 반드시 unique해야 한다.

 

응용

어떤 unique한 key로 무엇인가를 분류해야 하는 경우에 사용할 수 있다.

- 주민등록번호(key),이름(value): 이름은 동명이인이 있을 수 있지만 주민등록번호는 각 개인이 모두 고유한 값을 가지기 때문에 map을 이용하는 것이 적절하다.

- 국가 이름(key):각 국가가 사용하는 화폐(value) : 각 국가 이름은 고유하지만, 화폐는 여러 국가가 같은 화폐를 사용할 수 있다.(EU 국가들의 유로 사용 등) 

 

구현

각 node가 <key, value> pair를 저장하는 unsorted DLL로 구현할 수 있다. 

이러한 방식으로 map을 구현하게 되면, unsorted DLL을 이용했기 때문에 insertion 연산은 O(1) 시간에 수행 가능하지만, 기타 다른 연산들은 O(n) 시간에 수행된다.(search, remove 등) 이러한 단점을 보완할 수 있는 것이 다음에 포스팅할 hash이다. 

 

 

 

 

 

 

'CS > 자료구조' 카테고리의 다른 글

[자료구조] Hash Table - (1)  (0) 2024.04.17
[자료구조] Heap(2)  (0) 2024.03.05
[자료구조] Heap (1)  (0) 2024.03.04
[자료구조] Priority Queue  (0) 2024.01.17
[자료구조] Binary Search Tree  (0) 2024.01.12