인프런 커뮤니티 질문&답변

내향적인 개발자 IDev님의 프로필 이미지
내향적인 개발자 IDev

작성한 질문수

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

셋 - 개념과 구현

셋의 핵심

해결된 질문

작성

·

287

1

안녕하세요 영상 잘봤습니다. set에 핵심인 데이터가 증복되지 않게 저장하는데 이 핵심만 지키면 꼭 해세테이블을 이용해서 할 필요가있을까요? 배열이나 연결리스트로 하면은 안될까요?

답변 1

1

감자님의 프로필 이미지
감자
지식공유자

추상자료형만 구현하면 어떤 자료구조를 이용하던 상관없지만 배열이나 연결리스트를 이용하면 해시 테이블을 이용한 것만큼 성능이 나오기는 어렵겠죠? ㅎㅎ

답변 감사합니다. 혹시 말씀하시는 성능이 성능일까요? 해시 테이블은 읽기, 삽입, 삭제의 성능이 좋은거를 알지만 set의 자료구조의 메서드만 보면 접근 메서드가 없어서 굳이 해시 테이블을 쓸필요가 있나 싶습니다. remove 경우에도 해시테이블 접근 후 연결리스트를 순회하는거인데 set 자료구조에서의 해시테이블 장점이 확실히 감이 오지 않습니다.

감자님의 프로필 이미지
감자
지식공유자

set은 중복하는 데이터를 저장하지 않습니다.

해시테이블의 get은 중복데이터를 O(1)의 성능으로 찾지만 배열이나 연걸리스트를 이용하면 O(n)이 걸립니다.

내향적인 개발자 IDev님의 프로필 이미지
내향적인 개발자 IDev

작성한 질문수

질문하기