이 레슨과 관련된 학습 키워드
컴퓨터 과학 & 프로그래밍 — 문제 해결의 도구 → 자료구조 — 효율적인 데이터 관리의 핵심 → 자료구조 — 효율적인 데이터 관리의 핵심 → 고급 자료구조
Optimal data structure selection by problem type, real-world scenarios, interview preparation, time-space tradeoffs.
100만 개 데이터에서 중복 제거:10만 개 데이터 중간에 삽입/삭제 10만 회:여러분, 자료구조 선택이 왜 중요할까요?
같은 문제를 풀더라도 자료구조에 따라 성능이 극적으로 달라집니다.
그림 왼쪽 위를 보세요.
100만 건의 데이터에서 이름을 검색하는 시나리오가 있어요.
배열로 순차 탐색하면 평균 50만 번 비교해야 합니다.
그런데 해시맵을 쓰면 단 1~3번이면 찾아요.
오른쪽 주황색 박스를 보세요.
무려 50만 배의 성능 차이가 납니다.
이게 바로 자료구조 선택의 위력이에요.
그러면 어떻게 올바른 자료구조를 고를 수 있을까요?
그림 아래쪽의 의사결정 흐름을 보세요.
첫 번째 질문은 핵심 연산이 무엇인가입니다.
검색이 많은지, 삽입이 많은지, 삭제가 많은지 파악하세요.
두 번째 질문은 데이터의 크기예요.
수십 개면 뭘 써도 비슷하지만, 수백만이면 복잡도가 결정적이에요.
세 번째는 순서가 필요한지입니다.
정렬 상태를 유지해야 하면 힙이나 균형 트리가 필요해요.
네 번째는 중복 허용 여부와 갱신 빈도예요.
읽기 위주라면 배열이 캐시 효율이 좋고, 쓰기 위주라면 연결 리스트가 유리합니다.
이 네 가지 질문에 답하면 최적 자료구조가 자연스럽게 결정돼요.
이번 레슨에서 각 상황별 최적 선택법을 체계적으로 배워봅시다.
선생님: 100만 개 데이터에서 검색할 때 배열과 해시맵의 성능 차이가 왜 이렇게 클까요?
학생: 배열은 처음부터 하나씩 확인해야 하니까 O(n)이고, 해시맵은 해시 함수로 바로 위치를 알아내니까 O(1)이에요.
선생님: 맞아요. 그러면 항상 해시맵만 쓰면 되지 않을까요?
학생: 아, 순서가 필요하거나 범위 검색을 해야 하면 해시맵은 못 쓰니까 상황에 따라 다른 자료구조가 필요한 거군요.
선생님: 정확해요. 자료구조 선택은 핵심 연산, 데이터 크기, 순서, 갱신 빈도를 종합해서 판단해야 합니다.