1. set
: 중복되지 않는 고유한 값을 저장하는 자료구조
// js : 중복을 허용하지 않으며, 삽입 순서대로 데이터를 유지
let set = new Set([1, 2, 3]);
set.add(4);
//python : 중괄호 {}로 생성하며, 중복을 허용하지 않음
s = {1, 2, 3} s.add(4)
//c++ : 정렬된 순서로 저장되며 중복을 허용하지 않음
#include <iostream>
#include <set>
std::set<int> s = {1, 2, 3}; s.insert(4);
// java : HashSet, LinkedHashSet, TreeSet을 통해 다양한 특성을 가진 Set을 제공
Set<Integer> set = new HashSet<>();
set.add(1);
2. map
키-값 쌍을 저장하는 자료구조로, 각 키는 고유하며 값은 중복될 수 있음
// js : 삽입 순서를 유지하며, 객체를 키로 사용할 수 있음.
let map = new Map();
map.set('key1', 'value1');
//python : dict 자료형을 사용하며, Python 3.7부터는 삽입 순서를 유지
m = {'key1': 'value1', 'key2': 'value2'}
print(m['key1'])
//c++ : std::map은 키가 자동으로 정렬되고, std::unordered_map은 해시 기반으로 순서를 보장하지 않음.
#include <iostream>
#include <map>
std::map<std::string, std::string> m;
m["key1"] = "value1";
// java : HashMap, TreeMap, LinkedHashMap 등 다양한 구현체가 있으며 각각의 성능 특성이 다름.
import java.util.HashMap;
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
3. Set과 Map을 같이 사용하는 경우
- Map에서 키-값 쌍을 저장하면서, 어떤 키가 이미 사용되고 있는지 추적하기 위해 Set을 사용 할 수 있음
- 특정 키에 여러 값을 저장해야 할 때, Map의 값으로 Set을 사용할 수 있음 → 키에 대한 값들이 중복되지 않도록
-> 예시: 학생의 과목별 점수를 저장할 때, Map의 키로 학생 이름을, Set을 값으로 사용하여 중복 점수를 막을 수 있음
- Set은 중복을 허용하지 않으므로, 새로운 데이터를 Map에 추가하기 전에 중복을 빠르게 검사
'스터디 > CS 스터디 (24.06-24.11)' 카테고리의 다른 글
네트워크 : CDN, 세션 인증 방식(Cookie, Session) & 토큰 인증 방식(JWT) (8) | 2024.10.03 |
---|---|
OS : 동기와 비동기(Sync/Async), Blocking/Non-Blocking (0) | 2024.09.29 |
데이터베이스 : DBMS의 종류(RDBMS와 NOSQL), CAP 이론 (0) | 2024.09.02 |
데이터베이스 : 절차형 SQL(프로시저, 사용자 정의 함수, 트리거) (0) | 2024.09.02 |
알고리즘 : MST (크루스칼, 프림) (0) | 2024.08.19 |