자료구조 선택의 기준

chan_hari·2025년 2월 14일

파이썬

목록 보기
3/10

자료 구조 선택의 기준

-데이터의 종류와 형태
-주요 연산의 종류
-시간 복잡도와 공간 복잡도
-애플리케이션의 활용 분야
-효율성 및 성능

Q1. 어떤 자료 구조가 적합할까요?
데이터의 크기가 고정되어있지 않습니다.
데이터 중간에 새로운 요소를 삽입하거나, 삭제하는 일이 잦습니다.
데이터 외의 다른 정보들이 추가로 필요합니다.

<내생각>
이것을 보았을때 해시테이블 구조가 가장 좋을것 같다
키와 버킷 엔티티로 중간 새로운 요소를 삽입 삭제가 부담스럽지 않고
다른 정보들도 함께 할수 있을 것 같아서

<정답>
연결리스트(링크 리스트)
왜?
데이터가 아무리 늘었다가 줄어들었다가 하더라도 불필요한 연산이 발생하지 않으며
데이터의 삽입과 삭제 다른 정보들의 추가도 자유롭게 쓸 수 있는 것

Q2.어떤 자료구조가 적합할까요?
빠른 검색 결과가 필요합니다.
파일과 디렉토리 구조와 같이, 계층화 됨 데이터 구조로 저장되어야 합니다.

<내생각>
트리 구조
근데 빠른 검색 결과면 바이너리 트리가 더 좋을것 같긴 한데,,
계층화 된 데이터 구조면

<정답>
트리요~~

Q3. 어떤 자료구조가 적합할까요?
각 데이터에 매칭되는 키가 존재합니다.
데이터들 간에 키는 중복 사용되지 않습니다.
매우 빠른 검색 속도(낮은 시간 복잡도)가 요구됩니다.

<내생각>
이거야말로 해시 테이블이다.
키 중복사용 안됨 왜냐면 키 충돌됨
시간 복잡도 오1 임
키 존재 맞음

<정답>
해시테이블~~

Q4. 어떤 자료 구조가 적합할까요?
값이 들어온 순서대로 처리하고 싶습니다.
처리된 데이터는 저장되지 않아도 됩니다.

<내생각>
줄서기 인 큐?

<정답>

++ 큐에서 디큐한 밸류에 대한건 큐가 더이상 책임 지지 않는다는 것 필요하다면 이걸 다시 인큐하는 건 그 바깥에 있는 프로그래머가 할일이라는 의미

Q5. 어떤 자료 구조가 적합할까요?
가장 최근에 입력된 값부터 처리하고 싶습니다.
처리된 데이터는 저장되지 않아도 됩니다.

<내생각>
가장 최근에 입력된 값 스택
후입선출

<정답>
스택

0개의 댓글